33
DEV-07: Increasing Productivity with Tools for Business Logic Gikas Gikas Principal Software Engineer

DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

Embed Size (px)

Citation preview

Page 1: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

DEV-07: Increasing Productivity with Tools for Business Logic

Gikas GikasPrincipal Software Engineer

Page 2: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

2 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

D I S C L A I M E R

Under Development

This talk includes information about potential future products and/or product enhancements.

What I am going to say reflects our current thinking, but the information contained herein is preliminary and subject to change. Any future products we ultimately deliver may be materially different from what is described here.

Page 3: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

3 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Agenda

What are Tools for Business Logic?

Code/Model Development Tools for Business Logic

Approach Tools for Business Logic

in Action Summary Q&A

Page 4: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

4 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

What are Tools for Business Logic?

Visual design tools for the development of business objects– Business objects represent the data

elements and business logic code that provide application functionality

Included in the new OpenEdge™ IDE Supports the OpenEdge Reference

Architecture Support for custom Application Models

Page 5: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

5 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Users

Presentation Layer

Business Servicing Layer

Data Access Layer

Managed Data Stores

Unmanaged Data Stores

Enterprise Services

Integration Layer

The Big Picture

DB Navigator

Tools For Business Logic

OpenEdgeStudio

New Sonic Release

Tools for Business Logic build on a foundation of data access tools

Tools for Business

Logic can have design-time and runtime implementations

Sonic XML Editors

Page 6: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

6 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Right Tool for the Job

Data-Oriented Tools and Languages

Component-Oriented Tools and Languages

SQL, XML JAVA™, C#OO/4GL

ERD, etc UML, etc ???Tools for

Business Logic

Page 7: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

7 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Agenda

What are Tools for Business Logic?

Code/Model Development Tools for Business Logic

Approach Tools for Business Logic

in Action Summary Q&A

Page 8: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

8 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Code/Model Development

Visual/Graphically OrientedText/Code Oriented

Code-centric Model-centric

Code written by hand can easily be transformed into visual model components

Model components can be visually edited and the code

elements will reflect the change

Code/Model Development

Accommodate a wide range of development styles

Page 9: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

9 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Code/Model Round Trip

DEFINE TEMP-TABLE ttCust LIKE Customer.DEFINE TEMP-TABLE ttOrder LIKE Order.DEFINE TEMP-TABLE ttOrdlin LIKE OrderLine.

DEFINE DATASET CustOrdLin FOR ttCust,ttOrder,ttOrdlinDATA-RELATION Customer_Order FOR ttCust,ttOrder RELATION-FIELDS (CustNum,CustNum)DATA-RELATION Order_OrderLine FOR ttOrder,ttOrdlin RELATION-FIELDS (OrderNum, OrderNum).

DEFINE INPUT PARAMETER NumCusts AS INTEGER. DEFINE OUTPUT PARAMETER DATASET FOR CustOrdLin.DEFINE OUTPUT PARAMETER sError AS CHARACTER.

DEFINE DATA-SOURCE srcCust FOR Customer.DEFINE DATA-SOURCE srcOrder FOR Order.DEFINE DATA-SOURCE srcOline FOR Orderline.

BUFFER ttCust:ATTACH-DATA-SOURCE(DATA-SOURCE srcCust).BUFFER ttOrder:ATTACH-DATA-SOURCE(DATA-SOURCE srcOrder).BUFFER ttOrdlin:ATTACH-DATA-SOURCE(DATA-SOURCE srcOline).

BUFFER ttCust:BATCH-SIZE = NumCusts.

Code can be created or edited at any time

Code is not dependent on a model

Code elements can be transformed into model elements at any time

Models can be disassociated from code at any time

Models create structure and code that can be edited

Based on Templates and Rules

ttCust

CustNum:INTEGERCustName:CHARACTERContact:CHARACTERCountry:CHARACTER

ttOrder

OrderNum:INTEGERCustNum:INTEGEROrderDate:DATEShipDate:DATE

ttOrderLin

OrderNum:INTEGERLineNum:INTEGERItemNum:INTEGERQty:DECIMAL

1

N

N

1

Page 10: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

10 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

More Code-oriented More Graphically-oriented

Stages of Code/Model Development

Hand CodingCustomary develop-

compile processBasic editing features

Visual ConstructionPDS/ADS toolsDrag into code

Cataloged ComponentsAnnotated codeComponents dragged into

code

Composite Components

Application ModelGraphs of modelsRules govern the

implementation

Page 11: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

11 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

First Look at Tools for Business Logic

Page 12: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

12 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Agenda

What are Tools for Business Logic?

Code/Model Development Tools for Business Logic

Approach Tools for Business Logic

in Action Summary Q&A

Page 13: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

13 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

How the Designers WorkOverview of Designer Elements

Model

DefinitionVisual

Designer

Code

Catalog

Data Schema

Code Generation

Abstract Syntax Tree (AST)

1

N

N

Page 14: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

14 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Catalog-Oriented

Store and index application metadata eg – Code annotations

– Cross-reference data

– Define your own! Simplifies management and organization of

components Some components will be cataloged automatically

by the IDE Can be created and managed independent of the IDE Rebuild on demand – therefore not a repository

Catalog

Page 15: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

15 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Organized Development

Spaghetti to Kabob

Code

Meta Data

Components BE, DAO

Schema Definitions

ComponentCatalog

Template

Meta Data

Page 16: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

16 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Annotation-Oriented

Annotations describe code elements

Used by tools for business logic designers to implement Code/Model approach

Stored and organized in the Catalog Define your own annotations

– Bug tracking, packaging etc.

@module(name=“AR”)

@ads-link(type=“dataset”,name=“order”)

@

Page 17: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

17 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Template-Driven

<%@ jet package="hello" class="NewProcedureTemplate" %><%@ include file="copyright.txt" %>/*-------------------------------------------------------- File: <%=args.get('fileName')%> Description: <%=args.get('description')%> Purpose: <%=args.get('purpose')%> Parameters: Author: <%=args.get('author')%> Version: <%=args.get('version')%> Update Notes: Initial Implementation---------------------------------------------------------*/

Consistent and customizable starting points for application components

Support for wizards

Page 18: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

18 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Tools for Business Logic – Visual Designers

Outline View for Code and Schemas

Text Editors: (4GL, WebSpeed, XML, SQL)

Visual Editors: (Model, Schemas)

Create componentsfrom templates

Resource, Catalog & Component Explorers

Page 19: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

19 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

XML Designer

The Schema Designer

The centerpiece of the tools for business logic– Most data-oriented

objects have schema that needs to be created and manipulated

Data Set Designer

Graph Tree Code

Operates like an ERD tool and is used to create Application Data Schemas (ADS)

Page 20: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

20 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Application Data Schema Designer

ADS Explorer

Logical Objects and Mapping

Application Data Schema (Canvas)

DB Navigator

Physical Objects ProDataSet Component Code

Component Catalog Explorer

Drag and Drop Physical Data Objects

Drag and Drop Logical Data Objects

Page 21: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

21 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Data Source Mapping

Data Source Mapping (DSM) is used for connecting PDS to ADS– Table/Field pairs are loosely linked

– Attributes such as keys need an affordance

– Code could be entered for derived data

The DSM operates in a simple grid format– More complicated “wiring” mode to be added later

Logical Table

LogicalField

Physical Table

Physical Field

L_Customer CustomerNum Customer CustNum

L_Customer CustomerName <Derived> …

L_Customer CustomerCity Customer City

Page 22: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

22 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Data Source Mapping

Design-time output is XML– Field pairs in an XML document

Runtime implementation is:– Code - DataSource (4GL)

– A procedure who’s output is of type DataSource

Page 23: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

23 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Data Access Object Designer

The Data Access Object Designer (DAO) is used for designing specific fill and update functionality for the source it’s attached to

The design-time output is code The runtime implementation is code

Page 24: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

24 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Business Entity Designer

Add business related processing to data elements

Coordinate the interaction between DAO & Data Schema elements through code

Visual canvas similar to modeling tools

Page 25: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

25 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Business Flow Designer

OutlineOrder.pd Inventory.wsdl

Drill down into OpenEdge

Service/ Task

Future

Page 26: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

26 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Tools in the Toolbox

Managed Data Stores

Unmanaged Data Stores

XMLOE SQL

Data Access Object Designer

Application Data SchemaDesigner

Data SourceMapping

DB Navigator

Business ObjectDesigner Tools

Business EntityDesigner

Business TaskDesigner

Business FlowDesigner

Service InterfaceDesigner

Sonic XMLTools

Catalog Tools

ADSExplorer

Sonic DBService

Page 27: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

27 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Agenda

What are Tools for Business Logic?

Code/Model Development Tools for Business Logic

Approach Tools for Business Logic

in Action Summary Q&A

Page 28: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

28 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Sneak Preview

Page 29: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

29 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Agenda

What are Tools for Business Logic?

Code/Model Development Tools for Business Logic

Approach Tools for Business Logic

in Action Summary Q&A

Page 30: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

30 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

In Summary

Complete Environment Awareness– Model– Code– Data

Flexible Development Paradigm– CodeModel

Customizable Components– Templates– Annotations– Model Rules

- OpenEdge Reference Architecture- Abstract Syntax Tree- Application Data Schema

- Application-specific, custom tags- Define your own- Influence component construction/assembly

Page 31: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

31 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Questions?

Page 32: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

32 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation

Thank you for your time!

Page 33: DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer

33 DEV-07: Increasing Productivity with Tools for Business Logic© 2005 Progress Software Corporation