An Eclipse Plug-In for Generating Database Access Documentation in Java Code

Size: px
Start display at page:

Download "An Eclipse Plug-In for Generating Database Access Documentation in Java Code"

Transcription

1 An Eclipse Plug-In for Generating Database Access Documentation in Java Code Paul L. Bergstein and Aditya Gade Dept. of Computer and Information Science, University of Massachusetts Dartmouth, Dartmouth, MA, USA Abstract Enterprise applications typically consist of a web layer, the business logic layer, and a relational database. However, the interaction between these various layers is not sufficiently captured by the current generation of IDE (Integrated Development Environment). For example, current Java IDE's do not evaluate the relationship of classes with the database, or how a particular java method interacts with database tables and columns. We report here our progress in developing an Eclipse plug-in that helps the programmer document the interactions between Java code and relational databases. A primary motivation is to facilitate code maintenance in the face of database modifications. Keywords: Software maintenance, software documentation, CASE tools. 1 Introduction Modern tools have simplified the development of enterprise applications by bridging gaps across various technologies like file systems, relational databases, messaging, and web services. However, this has also led to challenges in maintenance and enhancement of enterprise applications. An enterprise application usually consists of a web layer, the business logic and relational database, often enhanced with frameworks like Struts and Hibernate for web and persistence. However, the interaction between these various layers is not sufficiently captured by the current generation of IDE (Integrated Development Environment). For example, the Eclipse IDE provides support for syntax and debugging of java classes, but it does not evaluate the relationship with the database, or how a particular java method interacts with database tables and columns. For example, it does not flag a warning where an SQL query might be formed incorrectly. Similarly, the Visual Studio.NET would not flag a warning if an XPath applied on an XML document does not correspond to a valid value according to the schema. This makes it very difficult to maintain and enhance applications written by a third party, since a change in code may break some other layer, and the problem will become known only after extensive testing. Our goal is to develop a framework that will help programmers in bridging the gap between different technologies used in an enterprise application. However, this is very substantial initiative and we have so far focused our efforts on developing a suite of tools to support development and maintenance of database applications using Java in the Eclipse environment. We report here our recent progress in developing a plug-in tool for generating documentation of the interactions between Java code and relational databases. The obvious benefit of the documentation is to facilitate code maintenance in the face of requirement changes or database modifications. Certain database accesses may be fairly well self-documenting, e.g. by a simple statically defined SQL statement. However, there are many other situations where additional documentation can greatly enhance understanding the code dependencies on a database. Consider for example a query string that is built dynamically from SQL fragments which may be taken from user input, stored in variables, or passed as parameters from other methods. Furthermore, the point in the code where the query is executed may be far removed from the place where the query string is built. Even in a situation where a query is statically defined and used immediately, it may take some effort to determine which database elements are being read or written if the query is complex. With our tool, the developer may use our find and document interface to locate each database access of interest in their Java source code and selectively generate documentation where desired, in a manner similar to the familiar find and replace function of a word processor. Alternatively, they may choose to automatically generate documentation of all database

2 access with a single click on the Document All button. Our tool also provides considerable flexibility in specifying search criteria and scope as well as documentation style. 2 Background We have previously reported [1-3] our development of tools to provide a visual mapping of java code-to-database and code-to-code (via database) couplings. We have implemented our tool as a fully integrated plug-in to the popular Eclipse development environment. Developers can view the database and the project at various levels of granularity and easily find the types of coupling they are most interested in. For example, users can choose to view couplings of code to anywhere in the database, to a particular table in the database, or to a specific column in a table. Similarly, they can adjust the granularity of their project view between the project, class, and method levels. Search facilities enable users to quickly identify important dependencies. For example, when a method that stores information in the database is modified, it is easy to find all of the methods (or classes or projects) that retrieve the same information and might be affected. The database access of an application is discovered by our visualization tool through a combination of static and dynamic code analysis, or by processing user supplied java annotations. The static and dynamic code analysis approaches each have their relative advantages and disadvantages, but share some common characteristics. Both approaches have the advantage of automatic discovery that makes them suitable for maintaining legacy applications where the database access is not well documented. However, neither is 100% effective in finding all possible interactions between the application and the database. The static code analyzer uses the Sun java compiler API [4] and the Compiler Tree API [5] to parse the java source and walk the abstract syntax tree. It looks for string literals that are included either directly or after assignment to String variables in calls to the execute, executequery, and executeupdate methods of the JDBC Statement class. The analyzer attempts to identify column and table names occurring in select, from and where clauses and record these dependencies in the coupling repository. The code analyzer considers certain string concatenations including some concatenations that are built from a combination of string literals and variables to detect simple cases of dynamic SQL generation in the code. However, static analysis in general is a hard problem and it will never be possible to detect all couplings to the database that may occur at runtime, possibly dependent on user input. The main component of the dynamic analyzer is a JDBC bridge driver that logs the database accesses to the coupling data repository. Our driver acts as a bridge between the application and the "real" driver that communicates with the user's database. The implementation is conceptually simple. Most of the methods in our driver classes simply pass requests on to the underlying "real" driver and return whatever data is returned from the real driver. The main exception is in the Statement class methods (e.g. execute, executequery, executeupdate) that take SQL statements as arguments. These methods receive only complete, valid, fully formed SQL statements as arguments (unless there are errors in the application) even if they have been built dynamically. The SQL statements processed in the JDBC driver are parsed to determine the database elements that are being accessed and the coupling information is recorded in the repository. The main drawback to the dynamic analysis approach is that it will only find database accesses that occur during testing with the bridge driver in place. Therefore the success of this technique is highly dependent on the developer s ability to generate adequate test cases. In [3], we describe an extension of our previous work to allow the developer to explicitly supply the database access information in the form of java annotations to replace or supplement the code analysis tools. We chose annotations rather than comments since they are easier to process by machine. For legacy projects, or when the developer hasn't completely documented the database access, code analysis is still extensively used to obtain the necessary information. Our plan was to further enhance the system by adding a tool to inject the access information obtained through static and dynamic code analysis into the source code in the form of java annotations in order to automatically document the code. We realized, however, that annotations are more verbose and harder to read than ordinary comments, and decided to use comments for generated documentation. In the future,

3 we plan to add an option to generate documentation in the form of annotations. 3 Results Figure 1 shows the overall architecture of the system. The system uses annotation processing as well as both static and dynamic analysis of the java code to find database couplings. The results of all analysis methods are combined in the coupling data repository. For every code-to-database coupling that is detected, there is an entry in the repository. Each coupling entry in the repository includes the code location (class, method, file, and line number), the database element (database, table, and column), the SQL statement type (select, insert, update, etc.) and the type of access (read, write, or read/write). The statement type does not necessarily determine the access type. For example, a field occurring in the set clause of an update statement indicates a write access, but a field occurring in the where clause of the same statement indicates a read access. In order to detect changes over time, the repository also records the first time and last time that a coupling is detected. Also, each time the tool is run, the structure of the database is checked using the JDBC metadata API, and any structural changes are recorded in the repository. The user interface, implemented as an Eclipse plug-in, displays the results to the user, allows easy navigation to code based on its database coupling, and allows the user to generate documentation using the Find and Document feature. Figure 2 shows the details of the Find and Document interface, with all the option nodes expanded. The simplest form of the Find and Document interface is shown in the screenshot of Figure 3, where all option nodes are collapsed. The user can select the scope of the search from the drop down menu under the search node. Available options are to search the current file, the current project, or the entire workspace. In the Data Elements section, the user can choose to search only for code that accesses a particular database, column, or table, or they can choose all databases, all tables, or all columns. The dropdown menus are populated with the names of databases, tables, and columns that appear in the repository. Coupling Visualizer and Code Navigator Documentation Generator Coupling Data Repository Annotation Processor Static Code Analyzer Dynamic Code Analyzer Figure 1

4 The user may also choose to find and document database access only of a certain type (read, write, or read/write) or by a particular type of SQL statement (select, insert, update, or delete). Note that the tool will find the place where an SQL statement is executed, which may be far removed from the place where the SQL string is declared or built. Several options are available to customize the generated documentation, including comment style, a prefix to be included in comments, and if the dynamic code analyzer was employed, the option to include recently executed SQL statements. Listing 1 contains a fragment of code from a web application for managing stock portfolios that has been documented by the documentation generator. The generated documentation is highlighted in bold font. In this case, the documented code that executes the query is only removed from the code where the query string is built by a few lines. Even so, the documentation makes it easier to see which database elements are accessed, and the included sample query is much easier to read than the code used to build the query string. Figure 2 Figure 3

5 String datecondition; if (sale.getterm() == Sale.SHORT_TERM) datecondition = " and purchase_date > '" + cutoffdate + "' "; else datecondition = " and purchase_date <= '" + cutoffdate + "' "; String query = "select purchase_date, shares, round(adjusted_basis/shares, 2), + "lot from purchases p, lots l where p.pnum = l.pnum" + " and ticker = '" + ticker + "' and snum = 0" + datecondition + "order by purchase_date"; Connection dbconnection = null; try { PrintWriter out = res.getwriter(); dbconnection = Database.getConnection(); Statement statement = dbconnection.createstatement(); /* Auto-generated Documentation * * Read access to funds.purchases: purchase_date, pnum, ticker * Read access to funds.lots: shares, adjusted_basis, lot, pnum, snum * * Examples: * select purchase_date, shares, round(adjusted_basis/shares, 2), lot * from purchases p, lots l * where p.pnum = l.pnum and ticker = 'FB' and snum = 0 * and purchase_date <= * order by purchase_date */ ResultSet rs = statement.executequery(query); out.println("<html>"); out.println("<body>"); Listing 1 4 Related Work There is a large body of work on software visualization [6-10] and also on database visualization. There is also a good deal of work on reverse engineering of databases and CASE tools that support reverse engineering with visualization techniques. However, we are not aware of any other system designed to support the development and maintenance of software through the visualization or automated documentation of program code dependencies on the database. 5 Conclusions Many researchers have investigated to resolve the dependencies between different technologies involved in an enterprise application. Our tool significantly enhances understanding of dependencies between java code and relational databases. The principal benefit is the ability to more easily maintain application code in the face of structural changes to the database, changes in the format of data stored in the database, or changes to application requirements. We have tested our documentation generator by generating documentation for each of the five tools in our system (see Figure 1), including the documentation generator itself, and our team has found the results to be very useful. Static and dynamic analysis of java code to discover database couplings each have their advantages and disadvantages. Dynamic analysis is easier to implement and will find all couplings that occur during testing. Static analysis is harder to implement and cannot identify couplings that only occur dynamically

6 (e.g. based on user input). However, static analysis may identify couplings that are missed during the testing phase. By combining the results of static and dynamic analysis in a coupling data repository, we get the combined benefits of each. The repository also allows for tracking of changes over time so that areas of code that may be affected by a change could be flagged for the developer. 6 Future Work In the near term, we intend to continue testing our system on a wider range of database applications, particularly other projects under development by our team, and student projects developed in our database courses. We will continue to refine the functionality and user interface based on feedback from our users. In the long term, we plan to extend this tool to handle additional languages and technologies. For example, we plan to extend our java code analyzers to support JSP by analyzing the java snippets embedded in JSP pages, so that we can document couplings of JSP code to the database. This would also allow the visualization tool to display couplings between the presentation layer (JSP) and business logic code that occur through the database in a typical J2EE environment. If all these dependencies between the various layers of a J2EE application can be documented and visualized, the task of maintaining and enhancing such applications would be greatly facilitated. Eventually, we would also like to support additional programming languages such as C# and C++ and add support for ODBC applications. 7 References [1] Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad. An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases. In Proceedings of the 2009 International Conference on Software Engineering Research and Practice (SERP 09), Pages 64-69, July 13-16, 2009, Las Vegas, Nevada. CSREA Press ISBN [2] Paul L. Bergstein and Ashwin Buchipudi. Coupling Detection to Facilitate Maintenance of Database Applications. In Proceedings of the 2011 International Conference on Software Engineering Research and Practice (SERP 11), Pages , July 18-21, 2011, Las Vegas, Nevada. CSREA Press ISBN [3] Paul L. Bergstein. Documenting Java Database Access with Type Annotations. In Proceedings of the 2012 International Conference on software Engineering Research and Practice (SERP 12), Pages , July 16-19, 2012, Las Vegas, Nevada. CSREA Press ISBN [4] Java 6 Compiler API rce-code-analysis-using-java-6-compilerapis.html [5] Compiler Tree API ee/index.html [6] G. C. Roman and K. C. Cox. A taxonomy of program visualization systems. IEEE Computer, Vol. 26(12), Pages 11-24, [7] Blaine A. Price, Ian S. Small, and Ronald M. Baecker. A Principled Taxonomy of Software Visualization. Journal of Visual Languages and Computing, Vol. 4, Pages , [8] Jonathan I. Maletic, Andrian Marcus, and Michael L. Collard. A task oriented view of software visualization. In Proceedings of the First International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT), Pages 32-40, [9] Christian Collberg, Stephen Kobourov, Jasvir Nagra, Jacob Pitts, and Kevin Wampler. A system for graph-based visualization of the evolution of software. In Proceedings of the 2003 ACM symposium on Software visualization, Pages 77-86, ACM Press. [10] M. D. Storey, K. Wong, F. D. Fracchia, and H. A. Müller. On Integrating Visualization Techniques for Effective Software Exploration. In Proceedings of IEEE Symposium on Information Visualization, Pages 38-45, 1997.

Documenting Java Database Access with Type Annotations

Documenting Java Database Access with Type Annotations Documenting Java Database Access with Type Annotations Paul L. Bergstein Dept. of Computer and Information Science, University of Massachusetts Dartmouth 285 Old Westport Rd., Dartmouth, MA 02747 pbergstein@umassd.edu

More information

An ODBC CORBA-Based Data Mediation Service

An ODBC CORBA-Based Data Mediation Service An ODBC CORBA-Based Data Mediation Service Paul L. Bergstein Dept. of Computer and Information Science University of Massachusetts Dartmouth, Dartmouth MA pbergstein@umassd.edu Keywords: Data mediation,

More information

com Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/-

com Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/- www.javabykiran. com 8888809416 8888558802 Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/- Java by Kiran J2EE SYLLABUS Servlet JSP XML Servlet

More information

AC : EXPLORATION OF JAVA PERSISTENCE

AC : EXPLORATION OF JAVA PERSISTENCE AC 2007-1400: EXPLORATION OF JAVA PERSISTENCE Robert E. Broadbent, Brigham Young University Michael Bailey, Brigham Young University Joseph Ekstrom, Brigham Young University Scott Hart, Brigham Young University

More information

A web application serving queries on renewable energy sources and energy management topics database, built on JSP technology

A web application serving queries on renewable energy sources and energy management topics database, built on JSP technology International Workshop on Energy Performance and Environmental 1 A web application serving queries on renewable energy sources and energy management topics database, built on JSP technology P.N. Christias

More information

Database Applications

Database Applications Database Applications Database Programming Application Architecture Objects and Relational Databases John Edgar 2 Users do not usually interact directly with a database via the DBMS The DBMS provides

More information

Embarcadero PowerSQL 1.1 Evaluation Guide. Published: July 14, 2008

Embarcadero PowerSQL 1.1 Evaluation Guide. Published: July 14, 2008 Embarcadero PowerSQL 1.1 Evaluation Guide Published: July 14, 2008 Contents INTRODUCTION TO POWERSQL... 3 Product Benefits... 3 Product Benefits... 3 Product Benefits... 3 ABOUT THIS EVALUATION GUIDE...

More information

Development of E-Institute Management System Based on Integrated SSH Framework

Development of E-Institute Management System Based on Integrated SSH Framework Development of E-Institute Management System Based on Integrated SSH Framework ABSTRACT The J2EE platform is a multi-tiered framework that provides system level services to facilitate application development.

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

Kyle Brown Knowledge Systems Corporation by Kyle Brown and Knowledge Systems Corporation

Kyle Brown Knowledge Systems Corporation by Kyle Brown and Knowledge Systems Corporation Kyle Brown Knowledge Systems Corporation 1 What is the JDBC? What other persistence mechanisms are available? What facilities does it offer? How is it used? 2 JDBC is the Java DataBase Connectivity specification

More information

IBM Rational Application Developer for WebSphere Software, Version 7.0

IBM Rational Application Developer for WebSphere Software, Version 7.0 Visual application development for J2EE, Web, Web services and portal applications IBM Rational Application Developer for WebSphere Software, Version 7.0 Enables installation of only the features you need

More information

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

(800) Toll Free (804) Fax   Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented

More information

10 - Integrated Development Environments

10 - Integrated Development Environments 10 - Integrated Development Environments Motivation Writing a toy application with a text editor is comparatively easy. Developing a large software system with just a text editor is much more difficult

More information

Lightweight J2EE Framework

Lightweight J2EE Framework Lightweight J2EE Framework Struts, spring, hibernate Software System Design Zhu Hongjun Session 4: Hibernate DAO Refresher in Enterprise Application Architectures Traditional Persistence and Hibernate

More information

2005, Cornell University

2005, Cornell University Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson bh79@cornell.edu Agenda Kuali Application Architecture CATS Case Study CATS Demo CATS Source

More information

Combining Different Business Rules Technologies:A Rationalization

Combining Different Business Rules Technologies:A Rationalization A research and education initiative at the MIT Sloan School of Management Combining Different Business Rules Technologies:A Rationalization Paper 116 Benjamin Grosof Isabelle Rouvellou Lou Degenaro Hoi

More information

Page 1

Page 1 Java 1. Core java a. Core Java Programming Introduction of Java Introduction to Java; features of Java Comparison with C and C++ Download and install JDK/JRE (Environment variables set up) The JDK Directory

More information

BLU AGE 2009 Edition Agile Model Transformation

BLU AGE 2009 Edition Agile Model Transformation BLU AGE 2009 Edition Agile Model Transformation Model Driven Modernization for Legacy Systems 1 2009 NETFECTIVE TECHNOLOGY -ne peut être copiésans BLU AGE Agile Model Transformation Agenda Model transformation

More information

Oracle Application Development Framework Overview

Oracle Application Development Framework Overview An Oracle White Paper July 2009 Oracle Application Development Framework Overview Introduction... 1 Oracle ADF Making Java EE Development Simpler... 2 THE ORACLE ADF ARCHITECTURE... 3 The Business Services

More information

EasyCatalog For Adobe InDesign

EasyCatalog For Adobe InDesign EasyCatalog For Adobe InDesign Relational Module User Guide 65bit Software Ltd Revision History Version Date Remarks 1.0.0 02 May 2008 First draft. 1.0.1 08 August 2008 First release. Copyright 2008 65bit

More information

Oracle Retail Accelerators for WebLogic Server 11g

Oracle Retail Accelerators for WebLogic Server 11g Oracle Retail Accelerators for WebLogic Server 11g Micro-Applications Development Tutorial October 2010 Note: The following is intended to outline our general product direction. It is intended for information

More information

International Journal for Management Science And Technology (IJMST)

International Journal for Management Science And Technology (IJMST) Volume 4; Issue 03 Manuscript- 1 ISSN: 2320-8848 (Online) ISSN: 2321-0362 (Print) International Journal for Management Science And Technology (IJMST) GENERATION OF SOURCE CODE SUMMARY BY AUTOMATIC IDENTIFICATION

More information

Utilizing a Common Language as a Generative Software Reuse Tool

Utilizing a Common Language as a Generative Software Reuse Tool Utilizing a Common Language as a Generative Software Reuse Tool Chris Henry and Stanislaw Jarzabek Department of Computer Science School of Computing, National University of Singapore 3 Science Drive,

More information

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 14 Database Connectivity and Web Technologies

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 14 Database Connectivity and Web Technologies Database Systems: Design, Implementation, and Management Tenth Edition Chapter 14 Database Connectivity and Web Technologies Database Connectivity Mechanisms by which application programs connect and communicate

More information

APPLYING INTERACTIVE WEB PAGES

APPLYING INTERACTIVE WEB PAGES APPLYING INTERACTIVE WEB PAGES Item Type text; Proceedings Authors Self, Lance Publisher International Foundation for Telemetering Journal International Telemetering Conference Proceedings Rights Copyright

More information

Plan. Department of Informatics. Advanced Software Engineering Prof. J. Pasquier-Rocha Cours de Master en Informatique - SH 2003/04

Plan. Department of Informatics. Advanced Software Engineering Prof. J. Pasquier-Rocha Cours de Master en Informatique - SH 2003/04 Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. EJB: Transactions 7. EJB: Persistence Best Practices 8. Final Considerations

More information

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes Java CORE JAVA Core Java Programing (Course Duration: 40 Hours) Introduction to Java What is Java? Why should we use Java? Java Platform Architecture Java Virtual Machine Java Runtime Environment A Simple

More information

Lecture 9&10 JDBC. Mechanism. Some Warnings. Notes. Style. Introductory Databases SSC Introduction to DataBases 1.

Lecture 9&10 JDBC. Mechanism. Some Warnings. Notes. Style. Introductory Databases SSC Introduction to DataBases 1. Lecture 9&10 JDBC Java and SQL Basics Data Manipulation How to do it patterns etc. Transactions Summary JDBC provides A mechanism for to database systems An API for: Managing this Sending s to the DB Receiving

More information

Object-oriented Compiler Construction

Object-oriented Compiler Construction 1 Object-oriented Compiler Construction Extended Abstract Axel-Tobias Schreiner, Bernd Kühl University of Osnabrück, Germany {axel,bekuehl}@uos.de, http://www.inf.uos.de/talks/hc2 A compiler takes a program

More information

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject

More information

Java J Course Outline

Java J Course Outline JAVA EE - J2SE - CORE JAVA After all having a lot number of programming languages. Why JAVA; yet another language!!! AND NOW WHY ONLY JAVA??? CHAPTER 1: INTRODUCTION What is Java? History Versioning The

More information

SUN Sun Certified Enterprise Architect for J2EE 5. Download Full Version :

SUN Sun Certified Enterprise Architect for J2EE 5. Download Full Version : SUN 310-052 Sun Certified Enterprise Architect for J2EE 5 Download Full Version : http://killexams.com/pass4sure/exam-detail/310-052 combination of ANSI SQL-99 syntax coupled with some company-specific

More information

Aspect Refactoring Verifier

Aspect Refactoring Verifier Aspect Refactoring Verifier Charles Zhang and Julie Waterhouse Hans-Arno Jacobsen Centers for Advanced Studies Department of Electrical and IBM Toronto Lab Computer Engineering juliew@ca.ibm.com and Department

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

Integrated Architecture for Web Application Development Based on Spring Framework and Activiti Engine

Integrated Architecture for Web Application Development Based on Spring Framework and Activiti Engine Integrated Architecture for Web Application Development Based on Spring Framework and Activiti Engine Xiujin Shi,Kuikui Liu,Yue Li School of Computer Science and Technology Donghua University Shanghai,

More information

Chapter 2 FEATURES AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc.

Chapter 2 FEATURES AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc. Chapter 2 FEATURES AND FACILITIES SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: JDeveloper features. Java in the database. Simplified database access. IDE: Integrated Development

More information

Distributed Multitiered Application

Distributed Multitiered Application Distributed Multitiered Application Java EE platform uses a distributed multitiered application model for enterprise applications. Logic is divided into components https://docs.oracle.com/javaee/7/tutorial/overview004.htm

More information

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline Advanced Java Database Programming JDBC overview SQL- Structured Query Language JDBC Programming Concepts Query Execution Scrollable

More information

HIBERNATE MOCK TEST HIBERNATE MOCK TEST IV

HIBERNATE MOCK TEST HIBERNATE MOCK TEST IV http://www.tutorialspoint.com HIBERNATE MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Hibernate Framework. You can download these sample mock tests

More information

Agent-Enabling Transformation of E-Commerce Portals with Web Services

Agent-Enabling Transformation of E-Commerce Portals with Web Services Agent-Enabling Transformation of E-Commerce Portals with Web Services Dr. David B. Ulmer CTO Sotheby s New York, NY 10021, USA Dr. Lixin Tao Professor Pace University Pleasantville, NY 10570, USA Abstract:

More information

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module Java Platform, Enterprise Edition 5 (Java EE 5) Core Java EE Java EE 5 Platform Overview Java EE Platform Distributed Multi tiered Applications Java EE Web & Business Components Java EE Containers services

More information

For Experienced With Examples Pdf

For Experienced With Examples Pdf Core Java Interview Questions And Answers For Experienced With Examples Pdf Download PDF. Q1. Ans: In Java, access specifiers are the keywords used before a class name which defines the access scope. Java

More information

WA1278 Introduction to Java Using Eclipse

WA1278 Introduction to Java Using Eclipse Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA1278 Introduction to Java Using Eclipse This course introduces the Java

More information

Embarcadero DB Optimizer 1.5 Evaluation Guide. Published: March 16, 2009

Embarcadero DB Optimizer 1.5 Evaluation Guide. Published: March 16, 2009 Embarcadero DB Optimizer 1.5 Evaluation Guide Published: March 16, 2009 Contents INTRODUCTION TO DB OPTIMIZER... 4 Product Benefits... 4 ABOUT THIS EVALUATION GUIDE... 6 SESSION 1: GETTING STARTED WITH

More information

Questions and Answers. A. A DataSource is the basic service for managing a set of JDBC drivers.

Questions and Answers. A. A DataSource is the basic service for managing a set of JDBC drivers. Q.1) What is, in terms of JDBC, a DataSource? A. A DataSource is the basic service for managing a set of JDBC drivers B. A DataSource is the Java representation of a physical data source C. A DataSource

More information

Combining Doclets with JDBC and JSP Technologies to Deliver the Next-Generation Documentation System for the Java Platform

Combining Doclets with JDBC and JSP Technologies to Deliver the Next-Generation Documentation System for the Java Platform Combining Doclets with JDBC and JSP Technologies to Deliver the Next-Generation Documentation System for the Java Platform Eitan Suez President UptoData, Inc. Primary Purpose Study the architecture and

More information

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics Spring & Hibernate Overview: The spring framework is an application framework that provides a lightweight container that supports the creation of simple-to-complex components in a non-invasive fashion.

More information

Real SQL Programming 1

Real SQL Programming 1 Real SQL Programming 1 SQL in Real Programs We have seen only how SQL is used at the generic query interface an environment where we sit at a terminal and ask queries of a database Reality is almost always

More information

IBM. IBM WebSphere Application Server Migration Toolkit. WebSphere Application Server. Version 9.0 Release

IBM. IBM WebSphere Application Server Migration Toolkit. WebSphere Application Server. Version 9.0 Release WebSphere Application Server IBM IBM WebSphere Application Server Migration Toolkit Version 9.0 Release 18.0.0.3 Contents Chapter 1. Overview......... 1 Chapter 2. What's new........ 5 Chapter 3. Support..........

More information

purequery Deep Dive Part 2: Data Access Development Dan Galvin Galvin Consulting, Inc.

purequery Deep Dive Part 2: Data Access Development Dan Galvin Galvin Consulting, Inc. purequery Deep Dive Part 2: Data Access Development Dan Galvin Galvin Consulting, Inc. Agenda The Problem Data Access in Java What is purequery? How Could purequery Help within My Data Access Architecture?

More information

IBM WebSphere Studio Asset Analyzer, Version 5.1

IBM WebSphere Studio Asset Analyzer, Version 5.1 Helping you quickly understand, enhance and maintain enterprise applications IBM, Version 5.1 Highlights n Provides interactive textual n Helps shorten the learning curve and graphic reports that help

More information

Design Document CDT Remote Search/Index Framework. Chris Recoskie Vivian Kong Mike Kucera Jason Montojo. IBM Corporation

Design Document CDT Remote Search/Index Framework. Chris Recoskie Vivian Kong Mike Kucera Jason Montojo. IBM Corporation Design Document CDT Remote Search/Index Framework Chris Recoskie Vivian Kong Mike Kucera Jason Montojo IBM Corporation Page 1 of 26 1 Introduction 1.1 Purpose The purpose of this document is to describe

More information

JDT Plug in Developer Guide. Programmer's Guide

JDT Plug in Developer Guide. Programmer's Guide JDT Plug in Developer Guide Programmer's Guide Table of Contents Java Development Tooling overview...1 Java elements and resources...1 Java elements...1 Java elements and their resources...3 Java development

More information

Design Principles for a Beginning Programming Language

Design Principles for a Beginning Programming Language Design Principles for a Beginning Programming Language John T Minor and Laxmi P Gewali School of Computer Science University of Nevada, Las Vegas Abstract: We consider the issue of designing an appropriate

More information

Flex Data Services for Component Developers

Flex Data Services for Component Developers Flex Data Services for Component Developers Jeff Vroom Adobe Systems 1 Flex Data Services in Flex 2 Flex Data Services (Client library) FlexBuilder (Eclipse based IDE) Flex Framework Flash 9 / AVM+ Channels

More information

CSE 308. Database Issues. Goals. Separate the application code from the database

CSE 308. Database Issues. Goals. Separate the application code from the database CSE 308 Database Issues The following databases are created with password as changeit anticyber cyber cedar dogwood elm clan Goals Separate the application code from the database Encourages you to think

More information

NetBeans IDE Field Guide

NetBeans IDE Field Guide NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Extending Web Applications with Business Logic: Introducing EJB Components...1 EJB Project type Wizards...2

More information

JAVA SYLLABUS FOR 6 MONTHS

JAVA SYLLABUS FOR 6 MONTHS JAVA SYLLABUS FOR 6 MONTHS Java 6-Months INTRODUCTION TO JAVA Features of Java Java Virtual Machine Comparison of C, C++, and Java Java Versions and its domain areas Life cycle of Java program Writing

More information

Chapter 13 Introduction to SQL Programming Techniques

Chapter 13 Introduction to SQL Programming Techniques Chapter 13 Introduction to SQL Programming Techniques Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 13 Outline Database Programming: Techniques and Issues Embedded

More information

Computational Detection of CPE Elements Within DNA Sequences

Computational Detection of CPE Elements Within DNA Sequences Computational Detection of CPE Elements Within DNA Sequences Report dated 19 July 2006 Author: Ashutosh Koparkar Graduate Student, CECS Dept., University of Louisville, KY Advisor: Dr. Eric C. Rouchka

More information

How To Get Database Schema In Java Using >>>CLICK HERE<<<

How To Get Database Schema In Java Using >>>CLICK HERE<<< How To Get Database Schema In Java Using Eclipse Pdf Go To Table Of Contents Search, PDF, Comments EclipseLink is suitable for use with a wide range of Java Enterprise Edition (Java to a relational database

More information

Application Migration with X-Analysis

Application Migration with X-Analysis MANAGEMENT OVERVIEW A GUIDE TO THE BENEFITS OF USING APPLICATION MIGRATION Application Migration with X-Analysis Databorough Ltd. 66 York Road Weybridge UK info@databorough.com Phone +44 (0)1932 848564

More information

Support for Static Concept Location with sv3d

Support for Static Concept Location with sv3d Support for Static Concept Location with sv3d Xinrong Xie, Denys Poshyvanyk, Andrian Marcus Department of Computer Science Wayne State University Detroit Michigan 48202 {xxr, denys, amarcus}@wayne.edu

More information

A QUICK OVERVIEW OF THE OMNeT++ IDE

A QUICK OVERVIEW OF THE OMNeT++ IDE Introduction A QUICK OVERVIEW OF THE OMNeT++ IDE The OMNeT++ Integrated Development Environment is based on the Eclipse platform, and extends it with new editors, views, wizards, and additional functionality.

More information

Generalized Document Data Model for Integrating Autonomous Applications

Generalized Document Data Model for Integrating Autonomous Applications 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Generalized Document Data Model for Integrating Autonomous Applications Zsolt Hernáth, Zoltán Vincellér Abstract

More information

CORE JAVA. Saying Hello to Java: A primer on Java Programming language

CORE JAVA. Saying Hello to Java: A primer on Java Programming language CORE JAVA Saying Hello to Java: A primer on Java Programming language Intro to Java & its features Why Java very famous? Types of applications that can be developed using Java Writing my first Java program

More information

Implementing a Numerical Data Access Service

Implementing a Numerical Data Access Service Implementing a Numerical Data Access Service Andrew Cooke October 2008 Abstract This paper describes the implementation of a J2EE Web Server that presents numerical data, stored in a database, in various

More information

An Annotation Tool for Semantic Documents

An Annotation Tool for Semantic Documents An Annotation Tool for Semantic Documents (System Description) Henrik Eriksson Dept. of Computer and Information Science Linköping University SE-581 83 Linköping, Sweden her@ida.liu.se Abstract. Document

More information

Product Release Notes Alderstone cmt 2.0

Product Release Notes Alderstone cmt 2.0 Alderstone cmt product release notes Product Release Notes Alderstone cmt 2.0 Alderstone Consulting is a technology company headquartered in the UK and established in 2008. A BMC Technology Alliance Premier

More information

Database Explorer Quickstart

Database Explorer Quickstart Database Explorer Quickstart Last Revision: Outline 1. Preface 2. Requirements 3. Introduction 4. Creating a Database Connection 1. Configuring a JDBC Driver 2. Creating a Connection Profile 3. Opening

More information

An Archiving System for Managing Evolution in the Data Web

An Archiving System for Managing Evolution in the Data Web An Archiving System for Managing Evolution in the Web Marios Meimaris *, George Papastefanatos and Christos Pateritsas * Institute for the Management of Information Systems, Research Center Athena, Greece

More information

Chapter 8 Web Services Objectives

Chapter 8 Web Services Objectives Chapter 8 Web Services Objectives Describe the Web services approach to the Service- Oriented Architecture concept Describe the WSDL specification and how it is used to define Web services Describe the

More information

APPLICATION OF A METASYSTEM IN UNIVERSITY INFORMATION SYSTEM DEVELOPMENT

APPLICATION OF A METASYSTEM IN UNIVERSITY INFORMATION SYSTEM DEVELOPMENT APPLICATION OF A METASYSTEM IN UNIVERSITY INFORMATION SYSTEM DEVELOPMENT Petr Smolík, Tomáš Hruška Department of Computer Science and Engineering, Faculty of Computer Science and Engineering, Brno University

More information

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe Chapter 10 Outline Database Programming: Techniques and Issues Embedded SQL, Dynamic SQL, and SQLJ Database Programming with Function Calls: SQL/CLI and JDBC Database Stored Procedures and SQL/PSM Comparing

More information

Introduction to JSP and Servlets Training 5-days

Introduction to JSP and Servlets Training 5-days QWERTYUIOP{ Introduction to JSP and Servlets Training 5-days Introduction to JSP and Servlets training course develops skills in JavaServer Pages, or JSP, which is the standard means of authoring dynamic

More information

Skyway Builder 6.3 Reference

Skyway Builder 6.3 Reference Skyway Builder 6.3 Reference 6.3.0.0-07/21/09 Skyway Software Skyway Builder 6.3 Reference: 6.3.0.0-07/21/09 Skyway Software Published Copyright 2009 Skyway Software Abstract The most recent version of

More information

La Mesa Language Reference Manual COMS 4115: Programming Languages and Translators Professor Stephen Edwards

La Mesa Language Reference Manual COMS 4115: Programming Languages and Translators Professor Stephen Edwards La Mesa Language Reference Manual COMS 4115: Programming Languages and Translators Professor Stephen Edwards Michael Vitrano Matt Jesuele Charles Williamson Jared Pochtar 1. Introduction La Mesa is a language

More information

Description of CORE Implementation in Java

Description of CORE Implementation in Java Partner s name: Istat WP number and name: WP6 Implementation library for generic interface and production chain for Java Deliverable number and name: 6.1 Description of Implementation in Java Description

More information

(C) Global Journal of Engineering Science and Research Management

(C) Global Journal of Engineering Science and Research Management ANDROID BASED SECURED PHOTO IDENTIFICATION SYSTEM USING DIGITAL WATERMARKING Prof.Abhijeet A.Chincholkar *1, Ms.Najuka B.Todekar 2, Ms.Sunita V.Ghai 3 *1 M.E. Digital Electronics, JCOET Yavatmal, India.

More information

112-WL. Introduction to JSP with WebLogic

112-WL. Introduction to JSP with WebLogic Version 10.3.0 This two-day module introduces JavaServer Pages, or JSP, which is the standard means of authoring dynamic content for Web applications under the Java Enterprise platform. The module begins

More information

An UML-XML-RDB Model Mapping Solution for Facilitating Information Standardization and Sharing in Construction Industry

An UML-XML-RDB Model Mapping Solution for Facilitating Information Standardization and Sharing in Construction Industry An UML-XML-RDB Model Mapping Solution for Facilitating Information Standardization and Sharing in Construction Industry I-Chen Wu 1 and Shang-Hsien Hsieh 2 Department of Civil Engineering, National Taiwan

More information

IOSR Journal of Computer Engineering (IOSRJCE) ISSN: Volume 3, Issue 3 (July-Aug. 2012), PP

IOSR Journal of Computer Engineering (IOSRJCE) ISSN: Volume 3, Issue 3 (July-Aug. 2012), PP IOSR Journal of Computer Engineering (IOSRJCE) ISSN: 2278-0661 Volume 3, Issue 3 (July-Aug. 2012), PP 50-55 Modeling Object Oriented Applications by Using Dynamic Information for the Iterative Recovery

More information

Week 2 Unit 3: Creating a JDBC Application. January, 2015

Week 2 Unit 3: Creating a JDBC Application. January, 2015 Week 2 Unit 3: Creating a JDBC Application January, 2015 JDBC Overview Java Database Connectivity (JDBC) Java-based data access technology Defines how a client can connect, query, and update data in a

More information

Programming with XML in the Microsoft.NET Framework

Programming with XML in the Microsoft.NET Framework Programming with XML in the Microsoft.NET Framework Key Data Course #: 2663A Number of Days: 3 Format: Instructor-Led This course syllabus should be used to determine whether the course is appropriate

More information

JAVA. 1. Introduction to JAVA

JAVA. 1. Introduction to JAVA JAVA 1. Introduction to JAVA History of Java Difference between Java and other programming languages. Features of Java Working of Java Language Fundamentals o Tokens o Identifiers o Literals o Keywords

More information

GAVIN KING RED HAT CEYLON SWARM

GAVIN KING RED HAT CEYLON SWARM GAVIN KING RED HAT CEYLON SWARM CEYLON PROJECT A relatively new programming language which features: a powerful and extremely elegant static type system built-in modularity support for multiple virtual

More information

1 Lexical Considerations

1 Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2013 Handout Decaf Language Thursday, Feb 7 The project for the course is to write a compiler

More information

JVA-563. Developing RESTful Services in Java

JVA-563. Developing RESTful Services in Java JVA-563. Developing RESTful Services in Java Version 2.0.1 This course shows experienced Java programmers how to build RESTful web services using the Java API for RESTful Web Services, or JAX-RS. We develop

More information

Comparative Analysis of EJB3 and Spring Framework

Comparative Analysis of EJB3 and Spring Framework Comparative Analysis of EJB3 and Spring Framework Janis Graudins, Larissa Zaitseva Abstract: The paper describes main facilities of EJB3 and Spring Framework as well as the results of their comparative

More information

JavaEE Interview Prep

JavaEE Interview Prep Java Database Connectivity 1. What is a JDBC driver? A JDBC driver is a Java program / Java API which allows the Java application to establish connection with the database and perform the database related

More information

Moving From Studio to Atelier. Wouter Dupré Sales Engineer

Moving From Studio to Atelier. Wouter Dupré Sales Engineer Moving From Studio to Atelier Wouter Dupré Sales Engineer Before we start the journey Introduction Atelier: What is it? Atelier is a modern IDE for applications developers Implemented as a plug-in to Eclipse

More information

Element: Relations: Topology: no constraints.

Element: Relations: Topology: no constraints. The Module Viewtype The Module Viewtype Element: Elements, Relations and Properties for the Module Viewtype Simple Styles Call-and-Return Systems Decomposition Style Uses Style Generalization Style Object-Oriented

More information

Migrating traditional Java EE applications to mobile

Migrating traditional Java EE applications to mobile Migrating traditional Java EE applications to mobile Serge Pagop Sr. Channel MW Solution Architect, Red Hat spagop@redhat.com Burr Sutter Product Management Director, Red Hat bsutter@redhat.com 2014-04-16

More information

Tools to Develop New Linux Applications

Tools to Develop New Linux Applications Tools to Develop New Linux Applications IBM Software Development Platform Tools for every member of the Development Team Supports best practices in Software Development Analyst Architect Developer Tester

More information

Migrating to Object Data Management

Migrating to Object Data Management Migrating to Object Data Management Arthur M. Keller * Stanford University and Persistence Software Paul Turner Persistence Software Abstract. We discuss issues of migrating to object data management.

More information

D WSMO Data Grounding Component

D WSMO Data Grounding Component Project Number: 215219 Project Acronym: SOA4All Project Title: Instrument: Thematic Priority: Service Oriented Architectures for All Integrated Project Information and Communication Technologies Activity

More information

Next-Generation Standards Management with IHS Engineering Workbench

Next-Generation Standards Management with IHS Engineering Workbench ENGINEERING & PRODUCT DESIGN Next-Generation Standards Management with IHS Engineering Workbench The addition of standards management capabilities in IHS Engineering Workbench provides IHS Standards Expert

More information

Designing a Distributed System

Designing a Distributed System Introduction Building distributed IT applications involves assembling distributed components and coordinating their behavior to achieve the desired functionality. Specifying, designing, building, and deploying

More information

Database System Concepts and Architecture

Database System Concepts and Architecture CHAPTER 2 Database System Concepts and Architecture Copyright 2017 Ramez Elmasri and Shamkant B. Navathe Slide 2-2 Outline Data Models and Their Categories History of Data Models Schemas, Instances, and

More information

Web Application Development Using Spring, Hibernate and JPA

Web Application Development Using Spring, Hibernate and JPA Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days Price: 1,995 + VAT Course Description: This course provides a comprehensive introduction to JPA (the Java Persistence API),

More information