500 likes | 734 Views
Application Migration Agenda. Typical Client ApplicationsJDeveloper Application Migration Assistant Typical Middleware and Access Methods used to connect to RDBMSWeb ApplicationsMS Access ApplicationsDelphi ApplicationsESQL/C Applications. Application Migration Typical Client Applications . T
E N D
3. Application Migration Agenda Typical Client Applications
JDeveloper Application Migration Assistant
Typical Middleware and Access Methods used to connect to RDBMS
Web Applications
MS Access Applications
Delphi Applications
ESQL/C Applications
4. Application Migration Typical Client Applications Typical client software
Visual Basic
VC++
C#
ESQL/C
4GL
Access
Delphi
Web Applications
Typical middleware
ODBC
ODBC + Access methods (DAO, RDO, ADO)
OLE/DB
.NET
BDE Most applications connect to the RDBMS via some middleware. In Microsoft world, this is normally ODBC based although may be a layer above ODBC such as BDE or RDO.
Most applications connect to the RDBMS via some middleware. In Microsoft world, this is normally ODBC based although may be a layer above ODBC such as BDE or RDO.
5. Application Migration JDeveloper Application Migration Assistant Identifies and allows easy navigation between statements in the code that may require modification to work on the Oracle platform.
Analyzes complete projects or single files.
Generates an Analysis Report that summarizes project statistics.
Uses regular expressions in XML format that provide a search rule capability to identify issues
Allows rules to be customized so you can augment the search capability
6. Application Migration ODBC drivers for Oracle Oracle ODBC www.oracle.com
Microsoft ODBC www.eu.microsoft.com
Datadirect ODBC www.datadirect.com
7. Application Migration Microsoft ODBC Less supported functionality than Oracle’s
No Built-in Scrollable Cursor Support
ResultSets supported via PL/SQL Indexed by Arrays only (non transparent support)
8. Application Migration Oracle ODBC Based on latest Oracle OCI
Emulation capabilities
Built-in Scroll Cursor
ResultSets are supported transparently
Supports an Array Interface
Supports LOB The Oracle 8i ODBC driver supports most of the features of the database.
Oracle also provides a free OLE/DB provider.
Note that more recent versions of Oracle’s ODBC drivers than provided on the distribution CD are generally available from OTN.The Oracle 8i ODBC driver supports most of the features of the database.
Oracle also provides a free OLE/DB provider.
Note that more recent versions of Oracle’s ODBC drivers than provided on the distribution CD are generally available from OTN.
9. Application Migration Datadirect ODBC Built-in Scroll Cursor
ResultSets supported transparently
Full LOB Support
Supports an Array Interface
Additional cost
10. Application Migration ODBC Issues & parameters ODBC driver must support Oracle reference cursors if using stored Sub Programs with resultsets.
Oracle and Datadirect ODBC driver do not require extra parameters for REF Cursors.
ODBC PassThrough Mode will potentially require re-coding of SQL statements
ODBC AutoCommit Parameter needs consideration
ODBC array processing considerations
Oracle ODBC Driver Rows Pre-Fetch parameter.
11. Application Migration ODBC Example Our driver maps REF CURSORS to Result sets transparently,
Using the same call against a SQL Server / Sybase TSQL Stored Sub Program
And a converted Oracle PL/SQL Sub Program
{call read_position (2)}
12. Application Migration ODBC Extended SQL Syntax Use the ODBC extended SQL extensions to create generic SQL statements
allows the ODBC driver to convert SQL syntax on the fly
outer joins
functions (date, time, timestamp,...)
datatype conversions
Oracle9i instroduces support for ANSI SQL including support for the CASE statement, ANSI compliant joins
13. Application Migration ODBC extended SQL syntax The Oracle ODBC driver supports these syntactic transformation and helps to write portable SQL. However, Oracle9i now supports the same syntax as SQL Server.The Oracle ODBC driver supports these syntactic transformation and helps to write portable SQL. However, Oracle9i now supports the same syntax as SQL Server.
14. Application Migration ODBC extended SQL syntax
15. Application Migration ODBC extended SQL syntax
16. Application Migration ODBC extended SQL syntax ODBC supports the following date/time/timestamp formats:
Date {d ‘value’} “yyyy-mm-dd”
Time {t ‘value’} “hh:mm:ss”
Timestamp {ts ‘value’} “yyyy-mm-dd hh:mm:ss”
ODBC supports the following date/time/timestamp formats:
Date {d ‘value’} “yyyy-mm-dd”
Time {t ‘value’} “hh:mm:ss”
Timestamp {ts ‘value’} “yyyy-mm-dd hh:mm:ss”
17. Application Migration Microsoft Access Methods - ODBC MS Access uses DAO only
VB / SQL Server applications historically use RDO
RDO cursor libraries provide support for scrolling cursors even if the ODBC driver does not (e.g. RDO client batch cursor library)
make sure to select PK columns in the base SELECT statement
ADO and .NET are the more recent access methods. Over time Microsoft has developed various access method. Each one whilst providing additional functionality being incompatible with the previous one.
DAO was the first method developed followed by RDO and then ADO.
Access still only uses DAO.
Over time Microsoft has developed various access method. Each one whilst providing additional functionality being incompatible with the previous one.
DAO was the first method developed followed by RDO and then ADO.
Access still only uses DAO.
18. Oracle provides an OLE/DB provider with the same level of functionality as its ODBC driver
OO4O is an OLE server providing full native support for Oracle (written ib OCI)
Available through VB Object and VC++ Class
Proprietary Interface
Do not confuse OO4O and OLE/DB
Application Migration Microsoft Access Methods – OLE/DB Oracle Objects for OLE is a proprietary OLE Server for use by OLE compliant client applications. It is NOT OLEDB. It provides a familiar interface to VB and VC++ users whilst fully supporting the Oracle database through a native driver.
Using Oracle Provider for OLE DB, VB/ADO application can scroll backward.
Oracle also provides a free Provider for OLE DB.
Oracle Objects for OLE is a proprietary OLE Server for use by OLE compliant client applications. It is NOT OLEDB. It provides a familiar interface to VB and VC++ users whilst fully supporting the Oracle database through a native driver.
Using Oracle Provider for OLE DB, VB/ADO application can scroll backward.
Oracle also provides a free Provider for OLE DB.
20. MS applications tend to use Active Server Pages on the client.
ASPs tend to use ADO to communicate to the Database backend although .NET ODP is now becoming common.
Can be easily migrated to use the Oracle OLE/DB provider behind ADO
ODBC also possible via OLE/DB provider for ODBC
Could leave as is or migrate to JSP (Java Server Pages). Application Migration Web Applications
21. Oracle9iAS Migration Kit for ASP
22. Oracle9iAS Migration Kit for ASP Embrace
Deploy the ASP application to Oracle9iAS
Implement Oracle9iAS Web Cache to speed the delivery of both static and dynamic content
Choose your deployment platform: Windows, Linux, Solaris and many others supported by Oracle9iAS
Improve
Take advantage of Oracle specific technology not available from ASP applications
Allow ASP applications to integrate with J2EE applications
Replace
Migrate ASP applications to JSP applications
Customers are no longer reliant on any Microsoft technology
23. Oracle9iAS Migration Kit for ASP Current release version 1.2 supports Embrace and Improve.
Future release to support Replace phase.
Based on technology we licensed from Halcyon SoftwareBased on technology we licensed from Halcyon Software
24. Migrate the structure and data of your Microsoft Access database(s) to an Oracle database
Enable your unmodified Microsoft Access forms and reports to work with your Oracle database through an ODBC connection
Avoid Attached Tables (DAO/Jet) for better performance !
Migrate both 16-bit Access 2.0 databases and 32-bit Access 7.0 databases
Replaces the former Migration Assistant for MS Access Application Migration MS Access Applications Access Attached Oracle tables must use DAO via the jet engine.
Better performance against Oracle is obtained by using directly ODBC from the Access Forms and Reports.Access Attached Oracle tables must use DAO via the jet engine.
Better performance against Oracle is obtained by using directly ODBC from the Access Forms and Reports.
25. Application Migration Delphi Applications Delphi 6 normally uses BDE
Borland Database Engine (BDE) maps quite well to Oracle although performance is not good when run against >8i.
Native access to Oracle should be used (e.g. CoreLab’s ODAC (http://www.crlab.com) (Oracle Data Access) – same as BDE but closer to Oracle (directly in OCI)S Borland Database Engine can be replaced in Delphi / Oracle projects by a third party product called
ODAC from CoreLab (http://www.crlab.com/odac.html)
This product provides the same functions as BDE, directly written in OCI. It is fast and transparent.
For example, in BDE there are TQuery and TStoredProc objects. ODAC provides TOraQuery and TOraStoredProc with
the same signature. One can use a system of conditional compilation to use ODAC when the engine is Oracle without
changing the application logic.
Borland Database Engine can be replaced in Delphi / Oracle projects by a third party product called
ODAC from CoreLab (http://www.crlab.com/odac.html)
This product provides the same functions as BDE, directly written in OCI. It is fast and transparent.
For example, in BDE there are TQuery and TStoredProc objects. ODAC provides TOraQuery and TOraStoredProc with
the same signature. One can use a system of conditional compilation to use ODAC when the engine is Oracle without
changing the application logic.
26. Application Migration Delphi Applications Use the BDE with native Oracle Driver, ODAC (preferably) or ADO.
Use local Schema Cache
Define Rowsetsize to use Arrayinterface
Object Names should be in capital Letters
Use Varchar2 Datatype in the Database
Not portable SQL needs to be changed
Outer Joins
Select List Subqueries …
Null Value Handling needs be checked
27. Deployment Features
Oracle IIS Proxy Plug-In
Oracle Services for MTS
Security Integration
Directory Integration
28. Common Deployment Scenarios The graphic above shows a typical transaction-based website using Oracle’s data access and middle-tier integration on Windows and the Oracle database.
In the top layer lies the client tier where browser-based clients access transactional COM components in Active Server Pages (ASPs). These ASPs are accessed via the web server, Microsoft Internet Information Server (IIS). MTS and IIS both lie the application server in the middle-tier. Data access can occur through any of the following interfaces: OO4O, ADO/OLEDB, ODBC, OCI.
The MTS-hosted COM business logic objects access Oracle databases in the bottom layer, the data tier. The Oracle database can be run on either UNIX or Windows.
The connections to the databases are enlisted in MTS-initiated transactions via Oracle9i-MTS integration. Note that each application server instance is completely self-contained vis-a-vis Oracle-MTS enlistment and transaction completion, thereby scaling with the middle-tier. The graphic above shows a typical transaction-based website using Oracle’s data access and middle-tier integration on Windows and the Oracle database.
In the top layer lies the client tier where browser-based clients access transactional COM components in Active Server Pages (ASPs). These ASPs are accessed via the web server, Microsoft Internet Information Server (IIS). MTS and IIS both lie the application server in the middle-tier. Data access can occur through any of the following interfaces: OO4O, ADO/OLEDB, ODBC, OCI.
The MTS-hosted COM business logic objects access Oracle databases in the bottom layer, the data tier. The Oracle database can be run on either UNIX or Windows.
The connections to the databases are enlisted in MTS-initiated transactions via Oracle9i-MTS integration. Note that each application server instance is completely self-contained vis-a-vis Oracle-MTS enlistment and transaction completion, thereby scaling with the middle-tier.
29. Oracle 9iAS Proxy Plugin Goal Goals
Enable customers to use IIS* or iPlanet with 9iAS
No modifications to back-end applications The primary goal of the the proxy plug-in is to enable IIS and iPlanet to be used as web servers to front-end 9iAS based sites.
This allows smoother deployment in organizations that have already standardized on other web servers – such as iPlanet or IIS.
And it was desirable to not have to make any changes to the pre-existing (or new!) applications.The primary goal of the the proxy plug-in is to enable IIS and iPlanet to be used as web servers to front-end 9iAS based sites.
This allows smoother deployment in organizations that have already standardized on other web servers – such as iPlanet or IIS.
And it was desirable to not have to make any changes to the pre-existing (or new!) applications.
30. Oracle 9iAS Proxy Plugin Features
Converts IIS and iPlanet into reverse proxy servers
URL partitioning to support multiple back-end servers
Single Sign On Security support
No application change required
Certified with all Oracle 9iAS Release 2 components
Licensing
No additional cost for deployment
Distributed on Integration CD and OTN Nothing new … just summarizing.Nothing new … just summarizing.
31. Oracle 9iAS Proxy Plugin Architecture In this architecture diagram, the browser can only talk to IIS – and it cannot talk to any of the 9iAS components behind the firewall. I.e. the browser cannot talk to 9iAS-1 and 9iAS-2.
The configuration file is read in by the plug-in – it tells the plug-in which back-end servers are available to route the requests to, and how to partition the URL among those backend servers.
In particular, all requests that contain /portal will get sent to 9iAS-1, and those with /ifs will go to 9iAS-2. All requests with /j2ee will go to 9iAS-3. Everything else, will get handled by IIS.In this architecture diagram, the browser can only talk to IIS – and it cannot talk to any of the 9iAS components behind the firewall. I.e. the browser cannot talk to 9iAS-1 and 9iAS-2.
The configuration file is read in by the plug-in – it tells the plug-in which back-end servers are available to route the requests to, and how to partition the URL among those backend servers.
In particular, all requests that contain /portal will get sent to 9iAS-1, and those with /ifs will go to 9iAS-2. All requests with /j2ee will go to 9iAS-3. Everything else, will get handled by IIS.
32. Proxy Plugin - Features Reverse Proxy
Makes a HTTP v1.1 request of the backend server
Sends the response - unaltered - to the requester
Co-exist: Active Server Pages and J2EE apps
Access both from the same corporate IIS listener
Applies URL Name Space mapping
Reads from configuration file at IIS startup
Proxies to different servers based on configuration
Multiple 9iAS Backends
Beta / Production can be hosted from the same IIS The proxy plug-in converts IIS or iPlanet into reverse proxy servers, that talk http to the back-end OHS. It enables smoother deployment into existing environments by providing a way for J2EE (9iAS based) and asp to co-exist.
By enabling different back-end servers to be the target of proxy, it allows different 9iAS servers to be set up for different purposes (either different departments, or staging/production) – all being served through the same corporate standard of IIS or iPlanet.The proxy plug-in converts IIS or iPlanet into reverse proxy servers, that talk http to the back-end OHS. It enables smoother deployment into existing environments by providing a way for J2EE (9iAS based) and asp to co-exist.
By enabling different back-end servers to be the target of proxy, it allows different 9iAS servers to be set up for different purposes (either different departments, or staging/production) – all being served through the same corporate standard of IIS or iPlanet.
33. Proxy Plug-in Security Features Single Sign On
Integrates with Oracle 9iAS Release 2 SSO Server
Makes IIS applications work with SSO too!
All other backend 9iAS security mechanisms supported
Client Information
Client IP information forwarded to back-end 9iAS
Client User Name information also forwarded
Client Certificate information is not forwarded
SSL
Proxy plug-in uses http (not https) to Backend Server In addition, proxy plug-in integrates with the login server in 9iAS Release 2, and thus provides a better security model.
Thus, in-house applications (including asp) that are not 9iAS based can still transparently use the single sign on capability offered by 9iAS.
The client IP and username is forwarded to the back-end server. However, proxy plug-in does not communicate over SSL with the backend server and the certificate information is not sent to the backend server.
In addition, proxy plug-in integrates with the login server in 9iAS Release 2, and thus provides a better security model.
Thus, in-house applications (including asp) that are not 9iAS based can still transparently use the single sign on capability offered by 9iAS.
The client IP and username is forwarded to the back-end server. However, proxy plug-in does not communicate over SSL with the backend server and the certificate information is not sent to the backend server.
34. Deployment Features
Oracle IIS Proxy Plug-In
Oracle Services for MTS
Security Integration
Directory Integration
35. Oracle Services for MTS Integrate Oracle databases with MS Distributed Transaction Coordinator (DTC)
Oracle DB as resource manager in DTC transactions
Oracle Services for MTS acts as a proxy between DTC and the Oracle DB
OraMTS supports Oracle databases on any platform
OraMTS itself runs on Windows
36. Oracle Services for MTS OraMTS supported only by data access drivers provided by Oracle
Supports OO4O, OCI, ADO/OLE DB, ODBC, .NET
OO4O and OCI provide high performance, compatibility
Transactional operations
Enlistment and completion
Recovery
Connection pooling
37. OraMTS Operations Enlistment
Application requests that OraMTS enlist a connection
OraMTS proxy joins transaction with DTC
DTC generates transaction ID
OraMTS starts Oracle global transaction
Oracle uses transaction ID on connection
38. OraMTS Operations Completion
DTC calls proxy for two-phase commit operation
Proxy relays commit operation to database
Database performs commit operation
Proxy relays outcome of commit operation to DTC
DTC adjusts state of transaction (e.g. committed)
39. OraMTS Operations Recovery
Database recovery job checks for in-doubt transactions
Recovery job requests outcome from recovery daemon through reenlistment
Daemon queries DTC for outcome
Recovery job commits/aborts the transaction
40. OraMTS Architecture Architecture
Each MTS instance has its own OraMTS instance
No changes necessary for existing applications
41. OraMTS Architecture Multiple proxies per database
Higher performance, scalability, availability
No single point of failure
42. Oracle Services for MTS Optimizations Use a high-performing data access driver
OCI is highest-performing
Minimize use of Windows OS authentication
Verifying Windows OS security credentials is resource intensive
.NET support
OraMTS can participate in transactions using any .NET programming language
43. Deployment Features
Oracle IIS Proxy Plug-In
Oracle Services for MTS
Security Integration
Directory Integration
44. Oracle wallets stored in Windows registry
Improves security of wallets
Oracle wallets in registry (user profile), rather than file system
PKI single sign-on support with the registry
Oracle Wallet Manager - encrypts
Oracle Enterprise Login Assistant - decrypts Security Services
45. Security Services Microsoft Certificate Store integration
Oracle PKI and Windows PKI interoperate
Oracle and non-Oracle apps use common Windows PKI credentials
Wallet Resource Locator sets usage
Oracle PKI uses Microsoft CryptoAPI
PKI operations: signing, encryption, decryption, verification, and validation
46. Deployment Features
Oracle IIS Proxy Plug-In
Oracle Services for MTS
Security Integration
Directory Integration
47. Directory Services Enterprise security using native authentication and Active Directory
Single sign-on through Kerberos/NTLM native authentication
Oracle enterprise users and roles stored in AD
Increase scalability, reduce administrative overhead
Map Windows users/OUs/domains (X.509) to global users in database
Map Windows groups to enterprise roles
Manage enterprise roles in AD through Enterprise Security Manager
48. Directory Services Oracle Net naming with Active Directory
Store and resolve Net names through AD
Eliminate tnsnames.ora on clients
Centralize configuration, reduce administration
Register databases with AD (LDAP naming)
Enhanced tools support for storing Net naming
Windows Explorer, AD Users and Computers
Oracle DB Configuration Assistant, Net Manager, Net Configuration Assistant
49. Deployment Features
Oracle IIS Proxy Plug-In
Oracle Services for MTS
Security Integration
Directory Integration