Title: OpenEdge 10
1OpenEdge 10
2Guiding Principles of OpenEdge 10
Applications are a collection of software
components that reflect the actual business
processes
3OpenEdge 10.0A
The Foundation for All OpenEdge 10 Releases
3 Strategic Elements
SOAEnabled
.NET API
ProDataSet
ESB AdapterWeb Services
4What Well Cover
Highlights of OpenEdge 10
- Integration and SOA Enablement
- Web services
- Sonic ESB Interface
- Introduction to the ProDataSet
- .NET Client Interfaces
- Material for Future Tech Peak Seminars
5What Is a Web Service?
- Hardware Architecture and Language neutral way of
doing remote procedure calls - Based on protocols and technologies with very
broad industry acceptance - TCP/IP, HTTP, XML, SOAP
- A way to
- Integrate applications within an organization
- Extend application functions to customers and
partners
64GL as Provider of Web Services
ProgressJava.NET
Web Server
ProgressAppServer
POST(SOAP)
Web Services Client
HTTP Listener
BusinessLogic
Response(SOAP)
WSDL
- An OpenEdge application component can be called
as a Web service - Uses Open Client and AppServer
7Uses Open Client
- Proxy Generation for Web Services
- Uses 4GL r-code to generate a Web Services
Mapping (WSM) file
AppServer Application
ProxyGen
WSM
Input
Output
8Web Services Adapter
- Progress provided Java Servlet
- Manages all communications between a Web service
client and an AppServer - Converts a SOAP request to an AppServer request
- Configured using Progress Explorer or wsaman
9Web Service Deployment
- Done with Progress Explorer or wsaman
- A Web Service Application Descriptor (WSAD) file
is created from the WSM file - WSAD file is deployed to the Java Servlet
- A standard WSDL document is available through the
Servlet once it is deployed - http//localhost8080/wsa/wsa1/wsdl?targetURIurn
services-progress-commy4GLService
10SOAP Message Viewer
WsaViewer
- When the client calls the Web service the
messages are intercepted and displayed in the
viewer
114GL as Consumer of Web Services
- Call a Web service directly from Progress 4GL
- Just a run statement
Application Server
Web Server
POST(SOAP)
Businesslogic
Business Interface
HTTP Listener
SOAP Processor
Response(SOAP)
4GL Client
Any Web Services-enabled application
12WSDL Analyzer
- Processes the WSDL
- Generates documentation for 4GL developer
- How to connect
- How to create
- How to invoke
- Depending on the Web service you will either use
a RUN statement or a FUNCTION call
13WSDL Analyzer
Utility to analyze and document WSDL
14StockQuotes Sample
A Web Service
getQuote
DLC\src\samples\webservices\4GLClient\StockQuotes\
StockQuotes.p
15What Well Cover
Highlights of OpenEdge 10
- Integration and SOA Enablement
- Web services
- Sonic ESB Interface
- Introduction to the ProDataSet
- .NET Client Interfaces
- Material for Future Tech Peak Seminars
16What is Sonic ESB?
- Layered on top of SonicMQ messaging backbone
- Allows you to
- Expose services to external systems
- Include services in a complex process itinerary
Sonic ESB
SonicMQ Messaging Backbone
17Sonic ESB Container Interface
OpenEdgeApplication
.NETApplication
J2EE Application
ESB Service Container SOAP/HTTP
SOAP/HTTP
JMS or JCA
JMS
Transformation ServicesContent-BasedRouting
Services
Enterprise Service Bus
SOAP/HTTP
SOAP/HTTP
Web service
Partner System
XSLT
18OpenEdge Sonic ESB Adapter
Client
Sonic Enterprise Service Bus (ESB)
Service Container
WSA Engine
HTTP/SOAP
JMS
AppServer Protocol
OpenEdge Application Server
BusinessLogic
19Once on the ESB
- It can participate in process itineraries
OpenEdge Web Service
20What Well Cover
Highlights of OpenEdge 10
- Integration and SOA Enablement
- Web services
- Sonic ESB Interface
- Introduction to the ProDataSet
- .NET Client Interfaces
- Material for Future Tech Peak Seminars
21Introduction to the ProDataSet
- What the ProDataSet Is
- What the ProDataSet Does for You
- High Level Architecture
- Required Steps to Create a ProDataSet
- Examples
22The Business of Application Data
A Moving Target !
- We rarely work with these elements as independent
sets of data - Relationships are often defined in business
logic in order to enforce business integrity - Service Orientation may require these elements
to be treated as one unit
23What the ProDataSet Is
A New 4GL Object
- ProDataSet is a new language object
- Extending the core data objects
- (temp-tables, queries, buffers, etc.)
- Providing facilities to create and manage
- Multi-set data objects
- One 4GL Object
- Multiple sources
- Multiple sets of data
24What the ProDataSet Is
- A non-visual entity
- It has no association with ANY UI component
- Loosely-coupled from its source
- An in-memory copy of the data and schema
- ProDataSet can be marshaled across the network
- AppServer to 4GL Client
- AppServer to AppServer
- AppServer to .NET Client
25What the ProDataSet does for you
- Abstracts the application from the data design
- Encapsulate results of complex queries
- Capture and process distributed updates
- Map to ADO.NET and other clients
- Query across dissimilar data sources
26The Big Picture
OpenEdgeApplication Server
Purchase Order Business Logic
PO ProDataSet
CustomerData
OrderData
Web Service
OrderLineData
27Progress DataSet 4GL Objects
- DATASET (new)
- DATA-RELATION (new)
- DATA-SOURCE (new)
- QUERY
- BUFFER
- TEMP TABLES
28Steps To Create A DataSet
- Define Temp Tables
- Define DataSet
- Define Top Level Query
- Define DataSources
- Prepare the Top Level Query
- Attach DataSources to the DataSet
- FILL the DataSet
29Define Temp Tables
/ Temp-Table and Buffer definitions / DEFINE
TEMP-TABLE ttOrder LIKE Order FIELD OrderTotal
AS DECIMAL FIELD CustName LIKE Customer.NAME
FIELD RepName LIKE SalesRep.RepName. DEFINE
TEMP-TABLE ttOline LIKE OrderLine. DEFINE
TEMP-TABLE ttItem LIKE ITEM INDEX ItemNum IS
UNIQUE ItemNum.
ttOrder
30Define DataSet
/define dataset using temp table buffers and
DATA-RELATION syntax/ / DEFINE DATASET dsOrder
FOR ttOrder, ttOline, ttItem / /
DATA-RELATION OrderLine FOR ttOrder, ttOline
/ / RELATION-FIELDS (OrderNum, OrderNum)
/ / DATA-RELATION LineItem FOR
ttOline, ttItem / / RELATION-FIELDS
(ItemNum, ItemNum) REPOSITION. /
dsOrder
ttOrder
Temp table buffer
Query
ttOLine
Temp table buffer
Query
ttItem
Temp table buffer
31Define Query DataSources
DEFINE QUERY qOrder FOR Order, Customer,
SalesRep. DEFINE DATA-SOURCE srcOrder FOR QUERY
qOrder Order KEYS (OrderNum), Customer KEYS
(CustNum), SalesRep KEYS (SalesRep). DEFINE
DATA-SOURCE srcOline FOR OrderLine. DEFINE
DATA-SOURCE srcItem FOR ITEM KEYS (ItemNum).
32Prepare the Query
/ Prepare the query / QUERY qOrderQUERY-PREPARE
("FOR EACH Order WHERE Order.OrderNum 1,
", FIRST Customer OF Order, FIRST SalesRep
OF Order").
FOR EACH Order WHERE Order.OrderNum 1," ",
FIRST Customer OF Order, FIRST SalesRep OF
Order").
srcOrder
Default OrderLine query
srcOline
Default Item query
srcItem
33Attach DataSources
BUFFER ttOrderATTACH-DATA-SOURCE(DATA-SOURCE
srcOrderHANDLE,
"Customer.Name,CustName"). BUFFER
ttOlineATTACH-DATA-SOURCE(DATA-SOURCE
srcOlineHANDLE). BUFFER ttItemATTACH-DATA-SOURCE
(DATA-SOURCE srcItemHANDLE).
FOR EACH Order WHERE Order.OrderNum 1," ",
FIRST Customer OF Order, FIRST SalesRep OF
Order").
srcOrder
Default OrderLine query
srcOline
Default Item query
srcItem
34FILL
DATASET dsOrderFILL().
dsOrder
ttOrder
FOR EACH Order WHERE Order.OrderNum 1," ",
FIRST Customer OF Order, FIRST SalesRep OF
Order").
1/26/1998
5
3
1
srcOrder
Query
Default OrderLine query
ttOLine
131.22
2
1
srcOline
Query
Default Item query
ttItem
Fins
1
srcItem
35What Well Cover
Highlights of OpenEdge 10
- Integration and SOA Enablement
- Web services
- Sonic ESB Interface
- Introduction to the ProDataSet
- .NET Client Interfaces
- Future OpenEdge 10 Topics
36OpenEdge .NET Client Interface
OpenEdge Release 10 Foundation
User Interface Independence
- The high level goal of .NET client integration is
to provide a first-class interface for a
Microsoft .NET client to access an OpenEdge
AppServer
37Interfacing with .NET
The .NET User Interface accessesOpenEdge
business logic asnative .NET classes
.NET Interfaces
OpenEdge Applications
AppServer
Web servicesSonic ESBXML
Database
Our Web services, Sonic ESB, and XML technologies
strengthen the platform integration
38OpenEdge .NET Client Interface
.NET Client App
.NETProxy
O4GL Runtime
AppServer
Client
App Object
Network
Proc Object
Sub- AppObj
- ProxyGen Enhancements
- .NET Proxy Assembly
- Open Client interface for .NET
Database Server
39OpenEdge .NET Client Interface
- Consists of C .NET classes
- Are packaged as a .NET assemblies
- Open Client Runtime converts parameters and
returns values - From .NET data types to 4GL data types
- From 4GL data types to .NET data types
- ProDataSet maps to ADO.NET DataSet
- TEMP-TABLE maps to ADO.NET DataTable
40ProxyGen
- OpenEdge 10 ProxyGen takes r-code as input and
generates proxy code in C
Proxy
C Classes
App Object
Proc Object
Technology
Sub- AppObj
41.NET Client Application
- Written in any .NET language
- Accesses AppServer functionality through
generated proxies - Proxy (assembly) is added to the application as a
reference - Open Client runtime are added as references to
the application (O4GLRT) - Progress.o4glrt.dll
- progress.messages.dll
42.NET Client Development
43Where to find additional information
- New OpenEdge 10 Documentation
- WebServices
- Getting Started Application Integration
Services - OpenEdge Development Messaging ESB
- OpenEdge Development WebServices
- ProDataSet
- 6 White Papers with examples
- .NET
- OpenEdge Development .NET Open Clients
- DLC/src/samples
- /dotnet
- /webservices
- 4GL, Java, Microsoft, SonicESB
http//www.progress.com/products/documentation/ind
ex.ssp
44What Well Cover
Highlights of OpenEdge 10
- Integration and SOA Enablement
- Web services
- Sonic ESB Interface
- Introduction to the ProDataSet
- .NET Client Interfaces
- Future OpenEdge 10 Topics
45Future OpenEdge 10 Topics
- Focus on WebServices
- Focus on 4GL-Sonic Adapters
- Focus on the Database changes in OE10
- Focus on Language, Tools, SQL, DataServers,
Diagnostics - You Tell Us
46Major Initiatives Going Forward
- OpenEdge Reference Architecture
- OpenEdge Transformation Toolkit
- OpenEdge 10.x
47Reach Your Technical Peak 2004