Sergio Ferreira MoreData I16 Thursday, October 12, 2006 10:30 a.m. – 11:30 a.m. Platform: Informix How to call Informix 4gl code from J2EE.

Slides:



Advertisements
Similar presentations
Websydian Anne-Marie Arnvig Manager, Websydian Communications & Relations.
Advertisements

Websydian products.
Web Services Development made easy Olivier Le Diouris Principal Product Manager.
J2EE Architecture Overview
Lecture plan Information retrieval (from week 11)
Apache Struts Technology
Using JavaServer Pages Harry R. Erwin, PhD CIT304/CSE301.
An architecture for webb applications, J2EE
 Java  Python  Bigtable(Bt) is a distributed storage system for managing structured data that is designed to scale to a very large size.  Query Language.
EJB Design. Server-side components Perform –complex algorithms –high volume transactions Run in –highly available environment (365 days/year) –fault tolerant.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 2.
Java 2 – Enterprise Edition Kevin J. LaFata April 21, 2003 UM – St. Louis.
Layers & Tiers Umair Javed Lec - 41.
J2EE vs..NET Nigam Patel. Topics Background –Web Services, J2EE and.NET Similarities Differences Conclusion –Pros and Con (J2EE and.NET)
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Java Pet Store Application. Outline Introduction Introduction Information Layer Information Layer Application Layer Application Layer Infrastructure Layer.
Web-based Software Development - An introduction.
UNIT-V The MVC architecture and Struts Framework.
JavaServer Faces: The Fundamentals Compiled from Sun TechDays workshops (JSF Basics, Web-Tier Codecamp: JavaServer Faces, Java Studio Creator; IBM RAD)
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
EJB Overview Celsina Bignoli Distributed Business Applications Server DB Client DB Server DB.
Distributed Multitiered Applications The J2EE platform uses a multitiered distributed application model. Application logic is divided into components 1.
Oracle8 JDBC Drivers Section 2. Common Features of Oracle JDBC Drivers The server-side and client-side Oracle JDBC drivers provide the same basic functionality.
JRun 4 & Macromedia MX Tommy Reilly JRun Engineer.
Chapter 4: Core Web Technologies
HTTP client wide area network (Internet) HTTP proxy HTTP server HTTP gateway firewall HTTP tunnel Copyright Springer Verlag Berlin Heidelberg 2004.
Glink: GCOS e-business in an application server architecture Summit 2000, Jim Gallagher.
Ing. Ignacio Roqueta ARTech GeneXus and J2EE.
Java Omar Rana University of South Asia. Course Overview JAVA  C/C++ and JAVA Comparison  OOP in JAVA  Exception Handling  Streams  Graphics User.
CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University March 21, 2005.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Introduction to J2EE Architecture Portions by Kunal Mehta.
JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
第十四章 J2EE 入门 Introduction What is J2EE ?
Enterprise Java v120131Intro to JavaEE1 Java EE 5 TM Introduction.
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
JBoss Overview J2EE Sig Presenter: Steve Davidson Stephen Davidson & Associates, INC.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Databases JDBC (Java Database Connectivity) –Thin clients – servlet,JavaServer Pages (JSP) –Thick clients – RMI to remote databases –most recommended way.
Enterprise Java Beans. Model 1 J2EE – Web View Model/View/Controller Model View Control Data base Web Server Model One Architecture HTTP Request HTTP.
EFinanceFactory Andriy Kurhanevych, development group manager.
Java Servlets and Java Server Pages Norman White Stern School of Business.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Introduction to EJB. What is an EJB ?  An enterprise java bean is a server-side component that encapsulates the business logic of an application. By.
1 Distributed System using J2EE. 2 What is J2EE?  J2EE (Java2 Enterprise Edition) offers a suite of software specification to design, develop, assemble.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
® IBM Software Group © 2003 IBM Corporation IBM WebSphere Studio V5.1.2: Making Java Development Easier May 2004.
©NIIT Introducing Enterprise JavaBeans (EJB) Lesson 1A / Slide 1 of 43J2EE Server Components Objectives In this lesson, you will learn about: The features.
Bayu Priyambadha, S.Kom. Static content  Web Server delivers contents of a file (html) 1. Browser sends request to Web Server 3. Web Server sends HTML.
EJB Enterprise Java Beans JAVA Enterprise Edition
Glink for Java: applet, application and an API for integrating access to Bull, IBM, UNIX and Minitel systems with your Java based e-business applications.
Apache Struts Technology A MVC Framework for Java Web Applications.
Business Applications– Using Java _____ Presented by Priya Saha.
The Holmes Platform and Applications
J2EE Platform Overview (Application Architecture)
WebSphere Diego Leone.
Web-based Software Development - An introduction
Introduction to J2EE Architecture
MSIS 655 Advanced Business Applications Programming
Distributed System Using Java 2 Enterprise Edition (J2EE)
Computer Based Adaptive Testing
JavaServer Faces: The Fundamentals
Web Application Server 2001/3/27 Kang, Seungwoo. Web Application Server A class of middleware Speeding application development Strategic platform for.
Component-based Applications
Enterprise Java Beans.
Knowledge Byte In this section, you will learn about:
Presentation transcript:

Sergio Ferreira MoreData I16 Thursday, October 12, :30 a.m. – 11:30 a.m. Platform: Informix How to call Informix 4gl code from J2EE

2 Agenda The need for calling 4gl J2EE Quick introduction The possibilities to solve the problem The solution we choose

3 The problem of software Software evolves along with business changes. The software is very well adapted to the businesses. There are new channels that should be addressed (web applications, web services, integration with new systems). The normal temptation is redevelop everything. SOA gurus are telling us: Keep with the software that works. Integrate using agnostic technology.

4 Why call 4gl from Java 2 EE 4gl supports the business needs. It is a tool with a huge productivity and a quick training cycle. It’s fast ! It’s easy ! Why should we change ? J2EE is a multi-vendor standard way to create enterprise applications. Its good to create web applications, web services, etc But J2EE is very complicated. Poor productivity and need for a lot of people training. The answer is: Integrate 4gl with J2EE

5 What is J2EE A platform to create applications in Java Defined by a standard specification It is based on the existence of an application server Includes specifications for a lot of enterprise requirements: User interface (JSP, portlets, JSF, servlets, swing) Business Rules – EJB(s) Database access – JDBC “Legacy” integration – JCA XML Web services Directory services Transaction management Authentication and Authorization The compliant AS implement the specifications

6 The Application Server A Java server that offers : Containers, api(s), managers, admin tools

7 Why not a native call to 4gl It can cause problems in the Application Server Even when the native code is working properly it is always suspected when problems occur. 4gl does not work on a multi-threaded environment The function call stack is static The connection mechanism is based on ESQL/C that works on MT but not on generated from 4gl.

8 The solution Use JCA Create a way to spawn 4gl processes Comunicate between the Resource adapter and the 4gl process

9 How it works

10 What is JCA JCA stands for Java Connection Architecture JSR 112 It is part of J2EE It is a standard for connecting Java Application Servers and Enterprise Information Systems (EIS) Defines a piece called Resource Adapter that works according a contract JDBC could be (and some times is) seen as a Relational Resouce Adapter

11 JCA Connections Contracts

12 What do we have implemented A JCA resource adapter A communication mechanism between the 4gl process and the Resource Adapter A C library to handle all the 4gl calls and the comunication between the AS and the specific function in the 4gl process Execute the calls to the remote functions from the java side using the JCA interface (javax.resource.*) A way to generate the Java wrappers to 4gl functions

13 How it works

14 Work to be done This approach is usable to business rules without user interface. You can connect to Interactive 4gl programs using a ssh/telnet java applet inside the browser. Screen scrapping work can be done redirecting the standard output and input of the 4gl process to the AS Use solano to export 4gl functions as stored procedures

15 What do we gain Reuse of “legacy” business rules without shutting down the current 4gl applications. Less problems. Much lower cost than redeveloping. Much more faster productivity by creating the business rules in much higher level language 4gl is far more easy to use on this task than java

16 Overhead and scalability We measured a medium call overhead of 40 ms Scalability: The connection pooling gives a very good way to call functions without forks and new db connections We tested with a medium load of 100 function call(s) in a second and it worked during a whole week.

17 To gain productivity It must be easy to export functions to java without needing to write code. Automate the exporting process to expose 4gl functions as Stateless Session Beans. It is very important because it avoids high cost in exporting the functions. It could be made in severall ways from a simple script to a complete 4gl parsing process. We created with a parser and we got the 4gl functions in Java and web services in 30 s

18 Automatic generation

19 Code generation

20 Some features 4gl executed as the user that was authenticated on AS Array(s) as parameters and return values. “javadoc” version of Comments(known as fgldoc). Special tag(s) on comments control the code generation (ex defines that the function will be exported). Authorization to access functions defined in the fgldoc and executed on Java side.

21 Some features (2) 4gl “whenever” handler that returns all 4gl error information to a Java exception Hot deploy of new version of the 4gl applications. Administrative console in JSF. Template based code generation (with XSLT). Ssh Key pair based security spawning processes. Automatic initialization functions Its portable Tested on AS : Websphere ; Geronimo ; JBoss Tested with : Tradicional 4gl ; Aubit 4gl It should work with : 4js Genero ; Querix ; Supra 4gl Tested in Linux and Tru64

22 Next steps Call Java and web services from 4gl in a productive way. Solve the 4gl screen interaction problem.

23 Conclusion If you need to call Informix 4GL programs from Java use a JCA resource adapter and code generation. It works ! It is a tested solution ! It’s in production on the biggest Portguese telco ! Its an alternative to everyone that needs to modernize 4gl applications without compromise currrent applications. It enables SOA in your 4gl applications at low cost.

24 Questions

25 Sergio Ferreira IIUG Session I16 How to call Informix 4gl code from J2EE