Upload
isaac-fisher
View
218
Download
3
Tags:
Embed Size (px)
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