30
D1710-LV: Splitting the Atom – Application Development “Inside-Out” StepUp AccountingHansdip Singh Bindra Phone: +1 (973) 361-4224 Fax: +1 (973) 537-6946 e-mail: [email protected] Web: www.innov8cs.com © 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…01

Application Development “Inside-Out”

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Application Development “Inside-Out”

D1710-LV: Splitting the Atom –Application Development “Inside-Out”

StepUp Accounting™

Hansdip Singh BindraPhone: +1 (973) 361-4224 Fax: +1 (973) 537-6946e-mail: [email protected]

Web: www.innov8cs.com

© 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 01

Page 2: Application Development “Inside-Out”

About Us:

• StepUp Accounting™• You do not have to Reinvent the Accounting Wheel• The ONLY “Web-Services Ready” Progress® based G/L, A/R, A/P• Made just for ISV's and Consultants

• ProcessWare FrameWork™

• TakeStock for Chemical™ (with Infor)

• Consulting…• Application Architecture and Modernization• Progress 4GL / WebSpeed® / Database / GUI• DWP and WebClient™• Web-Services / Sonic / .Net / EAI• Experienced / High-Quality Off-Shore Services

© 2003-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 02

Page 3: Application Development “Inside-Out”

Overview:

• Goals for Modernizing…

• Plug-n-Play…

• Business Processes

• “Inside-Out”…4GL Focus

• Component Glue…

© 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 03

Page 4: Application Development “Inside-Out”

Goals for Modernizing…Why is it Imperative:

• “Best of Breed” Application Status

• Component of “Total Solution”

• Competitive Market Pressures

• Technology – GUI / N-Tier / SOA

• Lower Costs – Development and Maintenance

© 2003-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 04

Page 5: Application Development “Inside-Out”

Goals for Modernizing…Typical Expectations:

• Easier Intra/Inter “Application Integration”

• Less Development Time – “First to Market”

• Minimize Recurring “Maintenance Costs”

• High Quality (Distributed) Architecture

• Separation of UI and Business Process Logic

• Eliminate 2 Year Effect!!! (Modernize in Pieces)

© 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 05

Page 6: Application Development “Inside-Out”

“Plug-n-Play”…Definition:

• Input and Output (I/O) Points

• Moreover, extremely well “Documented” I/O Points

• “Centralized Business Process Manager” for all I/O Points

• “Business Process Level” I/O Points – ATOMIC(NOT Business Logic Level)

© 2003-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 06

Page 7: Application Development “Inside-Out”

“Plug-n-Play”…Concept:

• “Plug” and “Socket”– Applications

– Modules

– Sub-Modules

• Add Minimal Programming Layer on “Plug” Application

• NO Middleman or Match-Maker!

• Well “Documented” I/O for “Socket” Application

© 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 07

Page 8: Application Development “Inside-Out”

“Plug-n-Play”…Advantage:

• Simplify Enterprise Application Integration Process

• Integrate Applications/Modules• Lower Threshold

• Minimal Costs

• More “Total Solutions” based on “Best of Breed”

• Keep up with the Latest• “Web-Services” Service Oriented Architecture

• Enterprise Service Bus

• .Net / J2EE

• Messaging Systems – Sonic

© 2003-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 08

Page 9: Application Development “Inside-Out”

“Plug-n-Play”…Flow:

WSTK

OpenClientProxy

#14GL BPM“Socket”

ESB

J2EE.NetWebServices

#24GL BPM

“Plug”

“Front-End UI”

“Plugs”

#24GL UI“Plug”

#14GL UI“Plug”

WebServices

UI

Java Other

UI.Net

UI

AppServer Boundary

“Back-End Application”

WebClientGUIChUI

WebSpeed

WebClientGUIChUI

WebSpeed

Sonic XQ

“Plugs”

© 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 09

Page 10: Application Development “Inside-Out”

Business Processes…Guiding Principles of OpenEdge™:

… Applications are a collection of software components that reflect changing business processes Processes

… They do not exist as an island. Interoperability and integrationis an inherent requirement

Integration

UI

… And are not bound by any one user interface technology, methodology, or platform

© 2003-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 10

Page 11: Application Development “Inside-Out”

Business Processes…Background:

• Process Oriented Architecture based on “Business First Focus”

• SPLIT Application into “Small Segments” of Functionality

• Each Process exists on its own, but works with others to complete complex tasks

• Single / Standalone Component, e.g. Exchange Rate Calculation, Customer # Validation…– Used in SEVERAL places– Designed and Developed ONCE

• Object Orientation at the “Business Component Level”

• Technology Independent!!!

© 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 11

Page 12: Application Development “Inside-Out”

Business Processes…Concept:

• Atom... Σ Atom Molecule… Σ Molecule Compound…

• Business Process… Σ Business Process Business Logic…Σ Business Logic Business Workflow…

• Internal Procedure… Σ Internal Procedure Procedure (.p)…Σ Procedure (.p) Module…

• “Encapsulated” Process Inter-Dependency

• Layered Approach to “Openness” – Inside Out

• “Centralized Controller” to Manage ALL Processes

© 2003-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 12

Page 13: Application Development “Inside-Out”

Business Processes…Foundation:

• FUNDAMENTAL CHANGE in the way Applications are…– Thought Of – Planned– Organized – Built– Deployed

• “Theory” upon which Web Services are based

• “Core Fundamental Philosophy” of Service Oriented Architecture

• “Key Enabler” of Enterprise Application Integration

© 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 13

Page 14: Application Development “Inside-Out”

Business Processes…Flow (Order Entry Module):

Module ControllerModule Controller

“Process” OrderNotify Customer

Accept Input

Order Complete

Order Controller

Enter Order

Order Controller

ApproveSubmit to DB

Validate

“Process” Controller“Process” Controller

Check CustomerAllocate Stock

Validate Order Inventory ControllerInventory Controller

Check On-Hand

Allocate

Validate Item

Customer ControllerCustomer Controller

Status ApprovalNotify Result

Credit Check

Submit Order Data

Bureau Check

UI

PROCEDURE (.p)

IP (Super / Private)

Logic

ProcessFinal “Process” Status

Validate Order (Lines) Customer Status

CreditBureau

[ Web Service ]

Stock Check / AllocationApprove Order

Commit Order

EXTERNAL

EXTERNAL

© 2003-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 14

Page 15: Application Development “Inside-Out”

“Inside-Out”…4GL Atom…Concept:

• “Transform” Business Process Internal Procedure

• Input / Output Parameters ONLY(NO Sharing of Variables or Buffers)

• Mix of Temp-Tables and DB Tables

• “Self Contained” but “Universally Accessible”

• Usually resides on AppServer

• SUPER PROCEDURES ! ! !

© 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 15

Page 16: Application Development “Inside-Out”

“Inside-Out”…4GL Atom…Example:

• “Signature based Component” – Internal Procedure / UDF– SUPER (Both for Intra / Inter Application Integration) – PRIVATE (Internal Application Only)

PROCEDURE superGetExchangeRateProc:DEFINE INPUT PARAMETER inFromCurrency AS CHARACTER NO-UNDO.DEFINE INPUT PARAMETER inToCurrency AS CHARACTER NO-UNDO.DEFINE INPUT PARAMETER inDate AS DATE NO-UNDO.DEFINE OUTPUT PARAMETER outExchangeRate AS DECIMAL NO-UNDO.

FIND FIRST ExchangeRate WHEREExchangeRate.FromCurrency = inFromCurrency ANDExchangeRate.ToCurrency = inToCurrency ANDExchangeRate.StartDate <= inDate ANDExchangeRate.EndDate >= inDateNO-LOCK NO-ERROR.

ASSIGN outExchangeRate = IF AVAILABLE ExchangeRate THENExchangeRate.ExchangeRate

ELSE1.

END PROCEDURE.

© 2003-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 16

Page 17: Application Development “Inside-Out”

“Inside-Out”…4GL Molecule (.p)…Example:

• “Collection” of “Components” – Internal Procedures / UDF• Primary Focus – “Intra-Molecule” Communication

PROCEDURE superAPIAPBatchBillItemCreateProc:/* Define I/O Parameters */. . ./* Validates complete contents of A/P Batch details, Bill details & its Item details */IF outAPICreationStatus THEN

RUN privateValidateAPAPIBatchProc(INPUT inAPBatchTaskID,OUTPUT outAPICreationStatus).

/* Calls the Main procedure which Creates A/P Batch, Bill & Bill Items details */IF outAPICreationStatus THEN

RUN privateAPBatchBillItemCRUDProc(INPUT “New”:U,INPUT inAPBatchTaskID,INPUT “”,INPUT “New”:U,INPUT 0,OUTPUT outAPICreationStatus,OUTPUT outAPBatchBillRowID,OUTPUT outAPBatchBillNo).

/* Clears Temp-Table Contents */RUN superAPITempAPBatchBillItemEmptyProc.

END PROCEDURE.

© 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 17

Page 18: Application Development “Inside-Out”

“Inside-Out”…4GL Compound…Concept:

• 4GL Compound = Business Workflow = Module– G/L Posting – GLPostManagerSuper.p– A/P Bills and Payments – APModuleAPIManagerSuper.p

• Primary Focus – “Inter-Molecule” Communication

• Centralized BUSINESS PROCESS MANAGER (BPM)– ARModuleAPIManagerSuper.p

• Single Activation / Loading Mechanism SUPERs

• “Inner-Core” programmed in “UI-Less” 4GL

© 2003-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 18

Page 19: Application Development “Inside-Out”

“Inside-Out”…4GL Compound…Example:

• “Collection” of Procedures (.p’s) by Business Function– A/P Module API Manager– A/P Module Posting Manager, etc…

• Central Activation by BPM

/** Super Procedure HANDLE’s **/DEF VAR handleAPAPISuper AS HANDLE NO-UNDO.DEF VAR handleAPPostSuper AS HANDLE NO-UNDO.

/** Run Persistent Procedures and SESSION:SUPER-PROCEDURES **/

/* A/P Module API and Posting Managers */RUN APModuleAPIManagerSuper.p PERSISTENT SET handleAPAPISuper.RUN APPostManagerSuper.p PERSISTENT SET handleAPPostSuper.

/* Add Session SUPER’s */SESSION:ADD-SUPER-PROCEDURE(handleAPAPISuper).SESSION:ADD-SUPER-PROCEDURE(handleAPAPISuper).

© 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 19

Page 20: Application Development “Inside-Out”

“Inside-Out”…Recap:

• “Inside-Out” Architecture based on…Atom (IP) Molecule (.p) Compound (Module)

• Works in all Environments– Thin-UI (.Net) / AppServer – GUI Client-Server– Character based Host-Centric– WebSpeed– Leverage 75% of existing Applications

• “Interaction” through Procedure “Signatures” ONLY– Inputs/Output Parameters

• SUPER PROCEDURES are means to that end…– Maintain “Single Set” of Programs– Deploy in both “Front-End” and “Back-End” Applications– Easy “Customization” through Procedure Overloading

© 2003-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 20

Page 21: Application Development “Inside-Out”

“Inside-Out”…Black-Box Layers:

ATOMSMOLECULESCOMPOUNDBOARDING THE BUS!!!BEYOND THE 4GL…Sonic ESB ContainerWSTK / Open Client Proxy

4GL BPM.P Procedure

4GL Super

4GL Private

4GL Super

.P Procedure

4GL Super

4GL Private

4GL Super

Java

.Net

WebServiceES

B

J2EE

.Net

WebService

© 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 21

Page 22: Application Development “Inside-Out”

Component Glue…Planning:

• Already have…– Application “Blue Print”– Atoms, Molecules, Compounds…Business Process Managers, etc.– API to put “Common Pieces” together

• Atom (Inner Component) Layer– Know the “Plugs” on each Piece– Need the Stub with the “Sockets” in the Middle– “GLUE” the Atoms together with 4GL Code API

• Molecule (Middle Component) Layer – 4GL RUN Statements– Driven by Technical / Business Constraints

• Compound (Outer Component) Layer – Driven by Business Workflow Requirements

• Beyond Basic Integration– Application to Application “GLUE”– Product Choice (WSTK / Open Client Proxy) – Technical– Messaging Infrastructure (Sonic) – Technical / Business

© 2003-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 22

Page 23: Application Development “Inside-Out”

Component Glue…Documentation…Overview:

• “Core” of the “Inside-Out” Architecture• Describes the “Socket” for each Layer• Need Document for each Layer

– 4GL– Web-Services Wrapper, etc.

• Q & A Format• Describe the I/O in Detail for each Business…

– Process (PRIMARY FOCUS)– Logic– Workflow

• Provide Detailed Examples• Target Audience – “Layer” Architect/Programmer

© 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 23

Page 24: Application Development “Inside-Out”

Component Glue…Documentation…Example for Atom Layer:Step 3: FINAL CREATION OF GENERAL JOURNAL ENTRY1. Which Procedure to Call?superAPIGeneralJournalCreateProc (Parameters…)

PARAMETERS:There are 4 I/O parameters associated with this procedure that Creates a General Journal Entry in StepUp Accounting.

2. Parameter Definitions, Formats and Descriptions: Parameter Type Data Type Format Description 1 INPUT Character X(10) (M) System generated Journal Task ID, returned

Procedure SuperAPITempGLBatchCreateProc. If the generated value is not passed correctly, then the system does not allow creation of Journal into StepUp Accounting.

2 OUTPUT Logical YES/NO Returns YES if General Journal was created successfully into StepUp Accounting.

3 OUTPUT ROWID Returns ROWID of Journal Header Record (GLBatch Table)

4 OUTPUT Character X(10) Returns Actual StepUp Accounting General Journal Number.

NOTE: (M) - Indicates as MANDATORY.

/* SUPER - Main Procedure that Creates Actual General Journal Entry */RUN superAPIGeneralJournalCreateProc(INPUT inJournalTaskID,

OUTPUT outGLBatchStatus,OUTPUT outGLBatchRowID,OUTPUT outGeneralJournalNo).

© 2003-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 24

Page 25: Application Development “Inside-Out”

Component Glue…Documentation…Recap

1. What “Glue” (API) is available for the Component?2. What are the Names of available API’s?

3. What is the “Component Signature” (Parameters)?4. What is the Description and Format of those Parameters?

5. What is the Syntax for these “Stubs” (API)?6. Is there any Sample Program available?

7. Are complex (multiple) “Glue” needed in accomplishing an Integration Task?

8. Is there any sequence to be followed while calling the API’s?

© 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 25

Page 26: Application Development “Inside-Out”

Component Glue…Atom Glue…Example:

Print Controller – superPrintMainProc. . . FIND FIRST ReportDocument WHERE

ReportDocument.FileName = inPrintProcessName NO-LOCK. /* Report Properties from DB */

RUN privateSetCurrentPrintOutputProc. . . /* Set Current Print Output */

RUN privateGetPrintFileNameProc. . . /* Print File Name */

RUN privateGetFontNoProc. . . /* Font Number */

RUN privateGetLinesPerPageProc. . . /* Lines/Page */

RUN privateGetOrientationNoProc. . . /* Orientation Number */

superPrintSetSessionPrintCancelFunc(INPUT NO). /* Initialize Print Cancel */. . .

/* Process Report/Document and Output to Print File Name – Local or AppServer */RUN superPrintProcessProc(INPUT localPrintFileName,

INPUT localLinesPerPage,INPUT inPrintProcessName).

. . . /* Print Report/Document – Direct Output to Destination*/ . . .

© 2003-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 26

Page 27: Application Development “Inside-Out”

Component Glue…Molecule Glue…Example:

Field Level Validation – FieldLevelValidateSuper-Main.p

/* Validation SUPER Procedure Handle's */DEF VAR hGeneralLedger AS HANDLE NO-UNDO.DEF VAR hAcctsReceivable AS HANDLE NO-UNDO.DEF VAR hAcctsPayable AS HANDLE NO-UNDO.

/* Validation Procedures */RUN FieldLevelValidateSuper-GeneralLedger.p PERSISTENT SET hGeneralLedger.RUN FieldLevelValidateSuper-AccountsReceivable.p PERSISTENT SET hAcctsReceivable.RUN FieldLevelValidateSuper-AccountsPayable.p PERSISTENT SET hAcctsPayable.

/* Add Session SUPER’s */SESSION:ADD-SUPER-PROCEDURE(hGeneralLedger).SESSION:ADD-SUPER-PROCEDURE(hAcctsReceivable).SESSION:ADD-SUPER-PROCEDURE(hAcctsPayable).

© 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 27

Page 28: Application Development “Inside-Out”

Component Glue…Compound Glue…Example:

RentWorks (Bluebird Auto Rental Systems) StepUp Accounting/* APPLICATION: RentWorks, PROCEDURE: pwgljournal.p *//* "GLUE-PLUG" INTERNAL PROCEDURE: create-line-items */. . .postgl: FOR EACH Temp-GL NO-LOCK,

FIRST GL-Acct WHERE GL-Acct.GL-Acct = Temp-GL.GL-Acct NO-LOCK:

/* APPLICATION: StepUp Accounting, PROCEDURE: GLModuleAPIManagerSuper.p *//* "GLUE-SOCKET" SUPER INTERNAL PROCEDURE */RUN superAPITempGLBatchItemCreateProc(INPUT cJournalTaskID, /* Journal Task ID */

. . .INPUT Temp-GL.Memo, /* Description */INPUT Temp-GL.Location-Code, /* Reference # */INPUT "", /* Item Reference # */INPUT pdtJournalDate, /* Reference Date */. . .OUTPUT lItemStatus). /* Create Status */

IF lItemStatus <> YES OR ERROR-STATUS:ERROR THENRETURN "Error in Journal Item Details.“.

. . .END. /* FOR EACH Temp-GL */. . .

© 2003-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 28

Page 29: Application Development “Inside-Out”

Component Glue…Flow (Order Entry Module):

Module ControllerModule Controller

Order ControllerOrder Controller

“Process” Controller“Process” Controller

Inventory ControllerInventory Controller

Customer ControllerCustomer Controller

UI

[ .Net / GUI ]

Molecule Glue

Atom Glue

CreditBureau

[ Web Service ]

EXTERNAL

EXTERNAL

Compound GlueCompound Glue

© 2003-2005. Innov8 Computer Solutions, LLC. Transforming Business Processes into Software…™ 29

Page 30: Application Development “Inside-Out”

Questions?Additional Information and Downloads…

http://www.innov8cs.comPSDN WHITE PAPERS MIGRATION

Transforming Business Processes into Software…™

10 Years of

© 2003-2005. Innov8 Computer Solutions, LLC. StepUp Accounting™ 30