Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
“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
“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
“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
“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
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
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
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
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
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
“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
“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
“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
“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
“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
“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
“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
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
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
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
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
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
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
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
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
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