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

Preview:

Citation preview

DEV-07: Increasing Productivity with Tools for Business Logic

Gikas GikasPrincipal 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.

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

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

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

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

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

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

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

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

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

First Look at Tools for Business Logic

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

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

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

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

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”)

@

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

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

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)

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

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

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

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

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

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

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

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

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

Sneak Preview

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

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

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

Questions?

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

Thank you for your time!

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

Recommended