Presentation is loading. Please wait.

Presentation is loading. Please wait.

© Logicalis Group Web self-service: integration of applications and databases Mandy Shaw.

Similar presentations


Presentation on theme: "© Logicalis Group Web self-service: integration of applications and databases Mandy Shaw."— Presentation transcript:

1 © Logicalis Group Web self-service: integration of applications and databases Mandy Shaw

2 Web self-service Web enablement Web integration Web development

3 Agenda Choosing your mechanisms Availability, performance (both ends), resilience, security Culture and skills issues Development lifecycle issues Reusability issues Synchronous or asynchronous? Existing middleware, infrastructure and/or interfaces Problem determination techniques Open standards JDBC, XML, Web services (SOAP), JMS Non-open standards ODBC Examples iSeries specifics

4 Web self-service: infrastructure, logic elements and data flows INTERNET DMZ MZ Firewall Extranet and external Web server Firewall Internal databases and applications Web browser – potential Extranet or external user (Other potential external data or transaction sources and targets) Internal application user Web application server Intranet Web server Web browser – Intranet user Connectors

5 Web enablement CHALLENGE Motor insurers Admiral Group required a highly secure, highly scalable e- commerce Web site that could be fully integrated with its iSeries-based back end systems  insurance policy management, postcode lookups, credit card processing, … SOLUTION A WebSphere-based Web site with real-time integration to Admiral’s back end systems Live since July 2000 BENEFITS Improved customer service  Both online and on the ‘phone Reduced administration costs and workload

6 DMZMZ IBM HTTP server with SSL WebSphere Application Server 5.1 Servlets, JavaBeans and JSPs New RPG programs using existing logic Stored procedure definitions Rating engine runs here for performance I90 LOB application: postcode lookups, credit checking, policy creation, etc. JDBC using DB2 (DRDA) driver HTTP / HTTPS protocols Web enablement

7 CHALLENGE Shop fittings suppliers Morplan were selling to retailers via ‘phone/fax from a printed catalogue Needed a Web channel to grow revenue SOLUTION A WebSphere Commerce solution integrated with Morplan’s existing SAP implementation BENEFITS Improved customer service and longer ‘opening hours’ Reduced administration costs and workload Very considerable revenue growth

8 Web enablement DMZMZ WebSphere Application Server 3.5 WebSphere Commerce Suite 4.1 SAP NT IBM HTTP server with SSL Customised BAPI WCS/SAP standard interface (using RFC), customised HTTP / HTTPS protocols

9 Web integration CHALLENGE Optical products suppliers Bausch and Lomb wanted to provide retail opticians with improved order placement and order enquiry facilities Technology pilot for both Web self-service and application integration SOLUTION A customised WebSphere Commerce application  integrated with BPCS via B&L’s strategic middleware  deploying reusable application integration techniques and components BENEFITS Improved customer service Reduced administration costs and workload Tried-and-tested integration techniques and components

10 INTERNET DMZMZ Firewall etc. NT EAI hub (e*Gate) Web integration

11 DMZ MZ WebSphere Application Server 3.5 WebSphere Commerce Suite 4.1 NT IBM HTTP server with SSL HTTP / HTTPS protocols New RPG programs using existing logic Stored procedure definitions BPCS ECM IBM HTTP server WebSphere Application Server 3.02 Generalised XML handler servlet XML messages, handled by bespoke OFs and commands Routing of requests, retry handling, XML transformation, etc. HTTP e*Way C API e*Way JDBC using DB2 driver Other XML-based transactions from various sources Web integration

12 Web integration: XML example ELCBP604FL 20001124155400 WCS1234567 PO54321 123 WCS1234567 123 1234ABCDEF 35 1...

13 Web integration using WebSphere MQ CHALLENGE High speed, high volume, Internet-based order entry for customers SOLUTION A customised WebSphere application  integrated with BAAN via WebSphere MQ BENEFITS 24x7 order placing Reduced administration costs and workload Tried-and-tested integration techniques and components

14 DMZ: Web server MZ: BAAN server IBM HTTP server with SSL WebSphere App Server 5.0 Servlets, JavaBeans and JSPs JNI wrappers MQ HTTP / HTTPS protocols BAAN APIs BAAN User store Web integration using WebSphere MQ

15 Web development: meet your ancestors www.1837online.com Clustered WebSphere and DB2 on Linux RedHat Advanced Server on xSeries LizardTech DjVu for high performance over dial-up lines 2.4 million images (converted and cleaned up by us) 52 day ROI

16 INTERNET DMZMZ Failover Firewall Web server Firewall VPN connection Internal desktop/server with VPN client Customer Web browser Database server Load Balancer Occasional admin Image updates Failover database server Web server

17 DMZ: Web servers MZ: database server IBM HTTP server with SSL WAS 5.1 Network Deployment Servlets, JavaBeans and JSPs DB2 UDB relational database DB2 JDBC driver HTTP / HTTPS protocols DB2 UDB relational database - failover Steeleye high availability Web development: meet your ancestors

18 Web self-service: Some product choices INTERNET DMZ MZ Firewall Apache on iSeries, or Apache on xSeries (Windows or Linux) Firewall Internal databases and applications Web browser – potential Extranet or external user (Other potential external data or transaction sources and targets) Internal application user Tomcat or WebSphere Application Server Apache on iSeries Web browser – Intranet user JDBC, stored procedures, JMS, WebSphere MQ, Web services, …

19 Summary Availability, performance (both ends), resilience, security Culture and skills issues Development lifecycle issues Reusability issues Synchronous or asynchronous? Existing middleware, infrastructure and/or interfaces iSeries specifics follow …

20 iSeries application and database integration mechanisms WebFacing JDBC iSeries Toolbox for Java Direct program calls Web services

21 /* JDBC import */ import java.sql.*; /* Variables for DB2/400 connection */ Connection conn = null; PreparedStatement out = null; /* Connect to DB2/400 (DRDA JDBC driver for performance) */ Class.forName("com.ibm.db2.jdbc.app.DB2Driver"); conn = DriverManager.getConnection("jdbc:db2:cat32", “ “,“ "); /* Prepare INSERT statement (executed once only) */ out = conn.prepareStatement("INSERT INTO MAXDW.ONECALLADJ (LEIUNID, NARRATIVEDATE, NARRATIVETIME, NARRATIVE) VALUES(?, ?, ?, ?)"); /* Use INSERT statement (executed once per record) */ out.setString(1,leiUnid); out.setString(2,narrativeDate); out.setString(3,narrativeTime); out.setString(4,narrative); out.execute(); /* Disconnect from DB2/400 */ conn.close();

22 DB2/400 JDBC drivers Native DRDA iSeries Toolbox for Java JDBC driver

23 Native DRDA JDBC driver Runs over SNA or TCP/IP Very fast, resilient and secure Does have some JDBC support limitations No need to add to classpath Can only test on iSeries server

24 iSeries Toolbox for Java JDBC driver 100% pure Java, allowing it to run on any platform Fewer design limitations than the DRDA driver Not so fast or resilient as the DRDA driver Limitation that it will only run over TCP/IP Needs adding to classpath Use /QIBM/ProdData/java400/jt400ntv.jar version, or optimise jt400.jar to level 40 with CRTJVAPGM Development client based testing feasible

25 iSeries Toolbox also provides classes for direct access to iSeries functionality, e.g. Remote Command. Here is an example: /* Java import for Toolbox */ import com.ibm.as400.access.*; /* AS400 connection and command invoker */ private AS400 myServer = null; myServer = new AS400(“ ", “ ", “ "); CommandCall cc = new CommandCall(myServer); /* Set up command */ cmd = "RMVLNK OBJLNK('/QFileSvr.400/MYAS400/QDLS/MYFOLDER/" + this.folderName + File.separator + files[i] + "')"; /* Run command - this will generate a Java exception if OS/400 returns an exception */ cc.run(cmd); /* Get messages returned and put in Notes log */ AS400Message[] msgList = cc.getMessageList(); for (int i=0; i < msgList.length; i++) { System.out.println(msgList[i].getText()); }

26 Options for calling iSeries native code from Java

27 JNI: Calling RPG code from Java More at http://publib.boulder.ibm.com/infocenter/iadthelp/v6r0/index.jsp?topic=/com.i bm.etools.iseries.pgmgd.doc/c0925076175.htm http://publib.boulder.ibm.com/infocenter/iadthelp/v6r0/index.jsp?topic=/com.i bm.etools.iseries.pgmgd.doc/c0925076175.htm P checkCust B EXPORT D checkCust PI N D custName 100A VARYING CONST /free chain custName rec; return %found; /end-free P checkCust E class MyClass { static { System.loadLibrary ("MYSRVPGM"); } native boolean checkCust (byte custName[]); void anotherMethod () { boolean found; // call the native method found = checkCust (str.getBytes()); }

28 Toolbox and JNI: Message Broker to JDE World program call to Java Message Broker iSeries Existing target RPG program, amended to bind to DDSXMLUtil Java class iSeries Adapter (via Adapter Framework) New Java class DDSXMLUtil to parse request (not yet implemented) and generate XML reply iSeries job JNI JVM within iSeries job New Java class DDSXMLUtil Existing target RPG program Bound in CL initialisation code to set CLASSPATH environment variable and current directory Direct bind using RPG prototype Physical files for external descriptions Generated classes to handle externally described data structures Open source XML Java classes

29 JNI: Web service call via Java from RPG Mapsolute server (via Internet) iSeries Main RPG proof of concept application program module ADDRESSDSP New RPG module ADDRSUBMIT (bound in to ADDRESSDSP) passing array back to main program module Web services interface New Java class AddressValidation Open source (SAAJ) Web services Java classes iSeries job JNI JVM within iSeries job New Java class AddressValidation constructs SOAP message, calls web service, parses response New STRADDVAL initialisation code to set current directory and create JVM with correct settings (classpath, endorsed directories). Called once per iSeries job, before any JVM has been created New RPG module ADDRSUBMIT JVM manipulation instructions Direct bind using RPG prototype iSeries database table ADDRESS (used for external description only) Automatically generated class ADDRESSRFormat (used to build array entry)

30 Stored procedure call example // Register correct JDBC driver Class.forName("com.ibm.db2.jdbc.app.DB2Driver"); // Connect to destination machine conn = DriverManager.getConnection("jdbc:db2:cat34","vtuser","vtpwd"); // Prepare call to stored procedure cs = conn.prepareCall("CALL QGPL.TNAPICMD (?,?)"); // Set input parameters cs.setString (1, functionKey); cs.setString (2, reqBuffer); // Run the SQL statement cs.execute (); // Handle the result set, if any rs = cs.getResultSet(); if (rs != null) { // Loop through rows of result set processing each appropriately i = 0; while (rs.next()) { ++i; fieldType = rs.getDouble(2);. [do stuff]. } }


Download ppt "© Logicalis Group Web self-service: integration of applications and databases Mandy Shaw."

Similar presentations


Ads by Google