Title: INNOV1: OpenEdge 10.1A Overview
1INNOV-1 OpenEdge 10.1A Overview
Salvador Viñals
Consultant Product Manager
2OpenEdge 10.1A Focus
- Improve the productivity of OpenEdge
- to provide our partners significant competitive
advantage through the software they develop and
deploy
- New and enhanced tools for developing OpenEdge
applications - Enhancements to platform infrastructure and code
management to make applications more
interoperable in production
3Agenda
- Packaging and Installation
- Data Management
- OpenEdge Adapter for SonicMQ
- Language, Open Client,
- Development Products
This presentation includes annotations with
additional, complementary information
4OpenEdge Adapter for SonicMQ
A component rather than a product
- OpenEdge 10.0A/B
- No need to order adapter separately
- Available with Client Application Server
products - Available for download
- New in OpenEdge 10.1A
- Now available with Database Server products as
well - SonicMQ ClientConnect
- SonicMQ ServerConnect
- SonicMQ BrokerConnect
5Auditing
- Audit Functionality, Policy Manager and Archiving
- Packaged with all OpenEdge RDBMS products
- Audit Policy Maintenance
- Packaging dependent on product
- Complete, GUI only, back-end only
6OpenEdge Distribution
- Product CD
- Samples and tutorial files moved to separate PDF
CD - Product DVD
- All platforms on one DVD
- Install from specific directory on DVD
- Electronic Software Distribution (ESD)
7Installation
- Embeddable OpenEdge installation
- Custom installs can now be silent
- Updated install screens
- Streamlined flow
- Options to skip Sonic, WebSpeed
- Online help during installation
- Faster installation. Smaller kit.
- New compression algorithm
- License Update Tool
- New serial number supported
8What do Customers Say
- We were very impressed with the silent install
process. It worked flawlessly and is a great
time saver during install. - James Ballentine
- Shaker Computer Management Services, Inc.
9Agenda
- Packaging and Installation
- Data Management
- OpenEdge Adapter for SonicMQ
- Language, Open Client,
- Development Products
This presentation includes annotations with
additional, complementary information
10Data Management
OpenEdge RDBMS, OpenEdge SQL, DataServers,
ODBC/JDBC
- OpenEdge RDBMS and OpenEdge SQL
- Auditing
- Easy, secure and performant way to meet
regulatory requirements - Multi-threaded and online utilities
- Faster less time to perform maintenance
- Increase high availability More maintenance
utilities online - Self-sustaining features DBAs can focus on
strategic work - OpenEdge SQL
- Java Transaction API (JTA) support and Type 4
drivers First class data integration
11Data Management
OpenEdge RDBMS, OpenEdge SQL, DataServers,
ODBC/JDBC
- OpenEdge DataServers
- Automatically populate a TempTable object using a
SQL result-set with enhanced RUN STORED-PROC - JDBC Drivers
- Simplified installation and maintenance Type-4
JDBC drivers do not require OpenEdge client - Improved performance with native wire protocol
communications
RUN STORED-PROC Send-Sql-Statement
LOAD-RESULT-INTO ttHandle ("SELECT FROM
CUSTOMER").
12Data Management
OpenEdge RDBMS, OpenEdge SQL, DataServers,
ODBC/JDBC
- ODBC Drivers
- Extended interoperability and simpler
configuration with Unicode support - Improved performance with native wire protocol
communications -
- Platforms
- Greater choice of low cost platforms
- 64Bit Linux x86 (AMD EM64T)
- RedHat EL and Novell SUSE Enterprise
distributions
13Agenda
- Packaging and Installation
- Data Management
- OpenEdge Adapter for SonicMQ
- Language, Open Client,
- Development Products
This presentation includes annotations with
additional, complementary information
14OpenEdge Adapter for SonicMQ
Support for Messaging Unified Domains
- Unified domains merge point-to-point (PTP) and
publish/subscribe (PUB/SUB) into a single/common
model - The application can use either without code
changes - Easier to use
- More generic and reusable code
15Agenda
- Packaging and Installation
- Data Management
- OpenEdge Adapter for SonicMQ
- Language, Open Client,
- Development Products
This presentation includes annotations with
additional, complementary information
16Language
- OpenEdge ABL
- Object-orientation
- Read and Write XML Methods
- Parameter Passing
- SAX-WRITER
- XML Schema Validation
- Short-hand syntax ()
- too much to list
17OpenEdge ABL
ABL Advanced Business Language
- Progress 4GL renamed to OpenEdge ABL
- OpenEdge ABL takes the Progress 4GL to a new
level - Constant evolution
- Latest technical innovations
- Unparalleled openness and productivity
- Only business-oriented major development language
- OpenEdge ABL Bigger, better, stronger, faster!!
18Introducing Objects
OpenEdge 10.1 introduces formal object-oriented
programming through language extensions that
support user-defined classes. User-defined
classes allow you to define objects, with methods
and data, and interfaces for building business
applications.
19Some Object-orientation (OO) Benefits
- Ease hire new developers
- Helps you build OpenEdge Reference Architecture.
More closely support SOA. - Natural integration with
- modeling tools
- other OO platforms
20InteroperabilityProcedures and Classes
Procedural available and fully supported
- Procedures
- Can NEW a CLASS
- Can DELETE an object
- Invoke methods using object reference
- Can pass object reference as a parameter
- Classes
- Can RUN a procedure
- Can invoke internal procedure / UDF using
procedure handle
21New Read and Write XML Methods
One statement replace tens/hundreds of lines of
code
- READ-XML and WRITE-XML methods
- Allow ABL structures to be converted to and from
XML documents - Data .xml
- Schema .xsd
- Supported structures
- ProDataSet
- Temp-Tables
- Buffers
ttItem
.xsd
.xsd
.xml
.xml
22What do Customers Say
- The power of the Temp Table / ProDataSet
READ-XML / WRITE-XML is absolutely incredible. - This has increased my productivity at least one
order of magnitude and has made our application
incredibly more flexible. - Jeffrey Kodman
- Manuvis
23WRITE-XML() Syntax
DATASET dsOrderWRITE-XML ("FILE",
/ target-type /
"pOrderWriteXMLSchema.xml", / file-name /
TRUE, / formatted
/ ?, /
encoding / ?,
/ schema location /
TRUE, / write schema /
?, / min schema /
TRUE). / write
before image /
- Easier than SAX and DOM
- No need to write your own code using DOM or SAX
- Supports in and out of XML to ABL objects
- XML data, XML Schema (.xsd)
- Both
- READ-XML(), READ-XMLSCHEMA() and
WRITE-XMLSCHEMA() not shown here
24BY-REFERENCE parameter passing
- New BY-REFERENCE for Temp-Table parameters
- New REFERENCE-ONLY, BIND keywords
- UDFs support parameter passing for DATASET
DATASET-HANDLE - Less memory resources
- Better performance
25SAX-WRITER object
- Simple API for XML (SAX)
- Stream forward only
- Event driven API. Application logic Callbacks
- SAX-WRITER
- Allows to stream out XML
- Significant reduction memory requirements
- Supports handling of very large XML documents
- Write tags automatically
- Checks XML document is well-formed
CREATE SAX-WRITER handle IN WIDGET-POOL
pool-name NO-ERROR handle attribute
method
26XML Schema validation
- OpenEdge 10.1A use XSD
- Verify that data exchanged adheres to an agreed
upon format - Validation occurs at runtime using the supplied
XML Schema - Works with DOM and SAX
hXdocADD-SCHEMA-LOCATION("http//www.example.com"
, "com.xsd").
hSaxReaderADD-SCHEMA-LOCATION("http//www.example
.com", "com.xsd").
27Short-hand syntax () for dynamic references
- Write much less code
- Less error prone
- Example
- hbbuffer-field("cust-num")buffer-value
- / becomes /
- hbcust-num
28More Good Stuff...
29xsdto4gl utility
- Command line utility
- Generates an OpenEdge ABL definition from an XML
Schema definition file (xsd) - Works for ProDataSet and Temp-Table
- Generated OpenEdge ABL include definition
- Default filename xsd filename .i extension
30New XML attributes
- NAMESPACE-URI, NAMESPACE-PREFIX, NESTED,
XML-NODE-TYPE, XML-DATA-TYPE - Attributes added for ProDataSet, Temp-Table, and
Buffer-Field objects - Syntax has also been added to static definitions
for these objects - DEFINE DATASET
- DEFINE TEMP-TABLE
- DEFINE BUFFER
3164bit r-code
- On 64bit platforms
- 64bit r-code runs faster on 64bit platforms!
- 64bit r-code not portable to 32bit platforms, and
vice versa - General OpenEdge 10 products compatibility and
connectivity not changed - Client to Database one version back
- Client to AppServer one version back/forward
- Shared Memory client server match version
- Auditing requires min OpenEdge 10.1A client and
DB server
32Connectivity/Compatibility
- Backwards/forwards extended compatibility
- Mixed deployment configurations
- Allow easier, gradual upgrades and migration
Application Server
Client
Database
10
10
10
9
10
10
9
9
10
NEW in OpenEdge 10
10
10
9
9
10
9
Refer to product by product information for
further details
33GENERATE-UUID and GUID functions
- GENERATE-UUID function
- Generates a universally unique identifier (UUID)
- GUID function
- Converts a UUID value into a globally unique
identifier (GUID) value - What is the difference between UUID and GUID?
DEFINE VARIABLE MyUUID as RAW. DEFINE VARIABLE
vGUID as CHARACTER. MyUUID GENERATE-UUID. vGUID
GUID(MyUUID).
34XP look with manifests
- Using manifest files, OpenEdge 10.1A provides
support for the Windows XP look (rounded corners,
non-3D appearance) for the following widgets - Buttons with images
- NO-FOCUS buttons
- FLAT-BUTTON buttons
- Browses
- Status area
- Rectangles
- OpenEdge 10.1A installation includes the
prowin32.exe.manifest file in the install-dir/bin
directory (prowc.exe.manifest for WebClient)
35Consuming Web Services enhancements
- Improved Complex Data Support
- ProDataSet and Temp-Table
- Serialized as an XML document
- Deserialize XML document
- WSDL Analyzer will indicate if mapping is
possible - Unwrapped Wrapped Document Literal
- Simplified programming
- Multiple simple parameters easier to work with
than one complex document - Improved interoperability with ABL Web Services
36Open Client enhancements
- Support Java Service Data Objects
- ProDataSets for Java
- Schema marshalling control for reducing calls to
AppServer - OpenAPI
- Run procedures on the AppServer without a proxy
- A set of classes used in place of generated
proxies - One set of classes for .NET Open Client
- One set of classes for Java Open Client
37New LOG-MANAGER methods
- WRITE-MESSAGE ()
- CLOSE-LOG ()
- CLEAR-LOG ()
38BLOB upload support for WebSpeed
- Previous OpenEdge releases introduced the BLOB
data type and enabled WebSpeed applications to
output BLOBs -
- OpenEdge 10.1A supports the upload of BLOBs to
WebSpeed applications - No need to hand code
39 and more
- ROW-UPDATE event
- QUERY attribute for BUFFER
- ATTACH-PAIRLIST attribute on BUFFER
- Create-field arg for SAVE-ROW-CHANGES becomes
list - GET-CALLBACK-PROCEDURE methods on BUFFER,
DATASET, QUERY - DATA-SOURCEFILL-WHERE-STRING becomes WRITEable
40Agenda
- Packaging and Installation
- Data Management
- OpenEdge Adapter for SonicMQ
- Language, Java Open Client,
- Development Products
This presentation includes annotations with
additional, complementary information
41OpenEdge Architect
Simplifies Designing, Developing, and Testing
Open Edge Architect is an integrated development
environment tailored for building applications
using an architected, business-logic centric
approach
42OpenEdge Architect
Key Contents
- Project Based Development
- OpenEdge plug-ins
- DB Navigator
- Meta Catalog
- Tools for Business Logic (T4BL)
- 3rd party plug-ins
- Provides vast array of customization options
- Modeling, SCM, Additional languages, etc
43OpenEdge Architect
OpenEdge Architect
44OpenEdge Architect
- Provides a modern, intuitive new toolset
- Built on open tools platform
- More productivity
- Greater choice
- Over 300 plug-ins available
- Allows you to transition at your own pace
- Learn as you go
45In Summary
- We just scratched the surface of whats in
OpenEdge 10.1A - Dont walk, run to go get it!!
46Questions?
47Relevant Exchange Sessions
- DEV-1 Introduction to Object-Oriented Language
Concepts and Programming in OpenEdge ABL - Evan
Bleicher - DEV-6 Using OpenEdge 10 to Develop Business
Applications (advanced OO programming) - Evan
Bleicher, Shelley Chase - DEV-2, DEV-3 Getting Started with OpenEdge
Architect - Part I and Part II - Mark Hanley,
David Lund - DEV-8 OpenEdge Architect - Extensibility and
Third Party Integration - Sunil Belgaonkar, Phil
Magnay - DEV-17 Effective Design and Deployment of
OpenEdge Audit Policies -Mike Jacobs - MOVE-11 Using classes and procedures in OpenEdge
10 - Bruce Gruenbaum - MOVE-13 Adopting OpenEdge Architect - Sunil
Belgaonkar - MOVE-9 Audit Enable your Application the Easy
Way - Anthony Swindells - SOA-1 Fundamentals of Service-Oriented
Architecture - Rob Straight - SOA-2 OpenEdge 10.1A Adapters for SonicMQ - New
Install, New Architecture, and New APIs - Cheryl
Labarge - SOA-5 Accessing the Application Server from
Anywhere and Everywhere -David Lund - ARCH-3 Context Management in the OpenEdge
Reference Architecture - John Sadd - ARCH-5 Service Interfaces in Practice -
Christian Stiller - ARCH-7 Integrate this! SonicMQ and the OpenEdge
Reference Architecture - Christian Stiller - ARCH-8 Implementing the OpenEdge Reference
Architecture with OpenEdge 10.1 - Eric Debeij,
Bart Schouw
48Thank you foryour time
49Education / Documentation References
50(No Transcript)
51Addittional slides
52Object-orientation Benefits
- Lets you organize applications the way you
think - around objects
- Increase application robustness (strong typing)
- More development productivity with encapsulation,
inheritance, and polymorphism - Promotes reusability
53Object-orientation Benefits
- Helps you build OpenEdge Reference Architecture.
More closely support SOA - Modular. Components. Composite applications.
- Service contracts Interfaces
- Ease application maintenance
- Natural integration with
- modeling tools
- other OO platforms
- Ease hire new developers
54OO Positioning
- When shall you consider using Classes?
- For well defined and designed functional units
- Not too coarse. Not too granular.
- Useful (and easy) when called from at least three
different modules of the application, or
different applications - Need to adhere to Interfaces
- When Procedures are best?
- Tasks
- Processes
- Workflows
- Dynamic or late bound code (not strong typed)
- Disposable programs
55OO Quick facts
- Multiple rollout strategy OpenEdge 10.1A is the
first one - The object-oriented extensions do not replace
existing language constructs - You do not need to use OO if you do not want
- Classes can include ON lteventgt constructs
- 10.1A language compiler is two-pass
56Similarities betweenClasses and Procedures
.p
.cls
57READ-XML(), READ-XMLSCHEMA() Syntax
READ-XML ( source-type, file memptr
handle longchar , read-mode, schema-location
, override-default-mapping ,
field-type-mapping , verify-schema-mode )
APPEND, EMPTY, MERGE, REPLACE Default MERGE
READ-XMLSCHEMA ( source-type, file
memptr handle longchar ,
override-default-mapping ,
field-type-mapping , verify-schema-mode
)
IGNORE LOOSE STRICT Default LOOSE
58OpenEdge supports DOM and SAX
59BLOB upload support for WebSpeed
- HTML snippet implementing a file upload with
WebSpeed - ltHTMLgt
- ltBODYgt
- ltFORM ENCTYPE"multipart/form-data"
- ACTION"http//ltyourhostgt/ltmsngr
pathgt/ltmsngrgt/ping" METHOD"POST"gt - ltINPUT type"file" name"attachment1"gt
ltINPUT type"submit"gt - lt/FORMgt
- lt/BODYgt
- lt/HTMLgt
- File upload directory property
- New get-binary-data() function wrapper for
WEB-CONTEXT GET-BINARY-DATA method, in - DLC/src/web/method/cgiutils.i