Requirements Design Implementation. Software Architectures. Components Software Component Architecture. DSSA: Domain-Specific Software Architectures

Similar documents
Web Application Frameworks. Robert M. Dondero, Ph.D. Princeton University

Rapid Application Development. and Application Generation Tools. Walter Knesel

Web Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.

Pentesting Web Frameworks (preview of next year's SEC642 update)

A Comparison of Open Source Application Development Frameworks for the Enterprise

Web Development Frameworks

BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME

Oracle WebLogic Server 11g: Administration Essentials

ORM IN WEB PROGRAMMING. Course project report for 6WW Erik Wang

Track and Keynote/Session Title 9:00:00 AM Keynote 11g Database Development Java Track Database Apex Track.Net Track. 09:30:00 AM with Oracle and

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

Object-Oriented Databases Course Review

How To Develop A Web Service In A Microsoft J2Ee (Java) 2.5 (Oracle) 2-Year Old (Orcient) 2Dj (Oracles) 2E (Orca) 2Gj (J

San Jose State University

PRINCIPAL JAVA ARCHITECT JOB ID: WD001087

How to Build an E-Commerce Application using J2EE. Carol McDonald Code Camp Engineer

Logicify Fact Sheet. We bring logic to the software systems and development processes. We call this process to logicify.

Cache Database: Introduction to a New Generation Database

Applying MDA in Developing Intermediary Service for Data Retrieval

<Insert Picture Here> Extending Hyperion BI with the Oracle BI Server

Pro<DOC/> e-commerce Technology An Introduction

Performance Comparison of Persistence Frameworks

zen Platform technical white paper

<Insert Picture Here> Betting Big on JavaServer Faces: Components, Tools, and Tricks

Django Web Framework. Zhaojie Zhang CSCI5828 Class Presenta=on 03/20/2012

Enterprise Java Web Application Frameworks & Sample Stack Implementation

5 Days Course on Oracle WebLogic Server 11g: Administration Essentials

Whitepapers at Amikelive.com

Oracle Data Integrator: Administration and Development

An Oracle White Paper May Oracle Tuxedo: An Enterprise Platform for Dynamic Languages

Java (J2SE & J2EE) and Web Development Training Catalog

Enterprise Application Development In Java with AJAX and ORM

WEB APPLICATION DEVELOPMENT. UNIT I J2EE Platform 9

Object Oriented Database Management System for Decision Support System.

Seamless Web Data Entry for SAS Applications D.J. Penix, Pinnacle Solutions, Indianapolis, IN

applications. JBoss Enterprise Application Platform

What means extensibility?

era J2EE Platform and Tool Recommendations

Ruby on Rails. a high-productivity web application framework. blog.curthibbs.us/ Curt Hibbs <curt@hibbs.com>

OptimalJ Foundation. PSM EJB Model. Roadmap. What is the EJB model? EJB model as a PSM model Mapping the EJB model Model elements and code generation

Oracle Application Development Framework Overview

Database Management System Choices. Introduction To Database Systems CSE 373 Spring 2013

CONTENTS. Introduction 3. Our Team 5. Our Strategy 6. Solution Domains We Serve 7. Technology Platforms We Serve 8. Our Execution Practices 10

The Oracle Fusion Development Platform

1 File Processing Systems

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

Software Architecture Document

Customer Bank Account Management System Technical Specification Document

PG DAC. Syllabus. Content. Eligibility Criteria

NoSQL replacement for SQLite (for Beatstream) Antti-Jussi Kovalainen Seminar OHJ-1860: NoSQL databases

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

edoc Document Generation Suite

MVC pattern in java web programming

The fastest way to the web with Quarix Framework. Date: 7-8.november.2013 Present: Adrian Breazu & Adam Sebestyen

Oracle Identity Analytics Architecture. An Oracle White Paper July 2010

Executive Summary. Within IT Services, Cosmic Creation spotlights on the following:-

Comparing SQL and NOSQL databases

IBM Rational Web Developer for WebSphere Software Version 6.0

Business Application Services Testing

Accenture Freight & Logistics Software. Technical Overview

Chapter 11 Map-Reduce, Hadoop, HDFS, Hbase, MongoDB, Apache HIVE, and Related

Ruby on Rails. Object Oriented Analysis & Design CSCI-5448 University of Colorado, Boulder. -Dheeraj Potlapally

Performance Evaluation of Java Object Relational Mapping Tools

What s really under the hood? How I learned to stop worrying and love Magento

ICOM 6005 Database Management Systems Design. Dr. Manuel Rodríguez Martínez Electrical and Computer Engineering Department Lecture 2 August 23, 2001

Exploring the Relationship Between Web Application Development Tools and Security

Tutorial: Building a Web Application with Struts

Design Approaches of Web Application with Efficient Performance in JAVA

Research Article. ISSN (Print) *Corresponding author Lili Wang

This training is targeted at System Administrators and developers wanting to understand more about administering a WebLogic instance.

SQL Databases Course. by Applied Technology Research Center. This course provides training for MySQL, Oracle, SQL Server and PostgreSQL databases.

CloudCERT (Testbed framework to exercise critical infrastructure protection)

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

Data processing goes big

Introduction: Database management system

Framework Adoption for Java Enterprise Application Development

GWIF: A Generic Web Application Integration Framework

DTWMS Required Software Engineers. 1. Senior Java Programmer (3 Positions) Responsibilities:

Category: Business Process and Integration Solution for Small Business and the Enterprise

UBS Training Course Catalog

Intellicyber s Enterprise Integration and Application Tools

Using MySQL for Big Data Advantage Integrate for Insight Sastry Vedantam

OXAGILE RESUMES SUMMARY OF QUALIFICATIONS TECHNICAL SKILLS SENIOR JAVA SOFTWARE ENGINEER

ABTO Software PHP Web Development Overview

LAMP [Linux. Apache. MySQL. PHP] Industrial Implementations Module Description

What is ODBC? Database Connectivity ODBC, JDBC and SQLJ. ODBC Architecture. More on ODBC. JDBC vs ODBC. What is JDBC?

GRAD Analytics Advanced price and promotional analysis interface. Reactive UI providing dimensional visibility to marketing analysis.

HOUG Konferencia Oracle TimesTen In-Memory Database and TimesTen Application-Tier Database Cache. A few facts in 10 minutes

In Memory Accelerator for MongoDB

Transcription:

Frameworks 1. Objectives... 2 2. Frameworks... 3 3. Classification... 3 4. Example: Components for Java (BC4J)... 6 5. Existing Frameworks... 9 6. Presistence Frameworks... 11 7. Content Management System Frameworks... 11 8. Cocoon Framework... 12 9. Summary... 13 1

1. Objectives A framework is not a library Components in a library have little, if any, interaction with each other (e.g., string, file, date, list). Each component can be independently added to an application. Building complex applications from scratch is very expensive. Where are we in the software life cycle? Requirements Design Implementation. Software Architectures DSSA: Domain-Specific Software Architectures Components Software Component Architecture Frameworks Design Patterns Which Programming language? 2

2. Frameworks There are no hard and fast rules as to what constitutes a framework. In general, it should provide the skeleton of an application. A framework is a partially complete (sub-) system that is intended to be instantiated. It defines the architecture for a family of (sub-) systems and provides the basic building blocks to create them. It also defines the places where adaptations for specific functionality should be made. In an object-oriented environment a framework consists of abstract and concrete classes. 3. Classification There are two categories of frameworks: o Horizontal o Vertical Horizontal framework: o It is a more general framework and can be applied in several applications. o Horizontal frameworks provide the most flexibility. o Example: GUI toolkits, Master/detail coordination. Vertical framework: o It a more specific framework. o It can only be applied to a specific application domain. 3

o Example: If you need to build an inventory control system, you might find that a precooked inventory framework is a good way to jump-start your development effort. A statistical analysis framework for economic data can only be applied to financial applications. There are three variables that can distinguish a vertical framework from a horizontal framework: o The level of generality: The number of applications that can potentially use features in the framework o The average portion of the framework that is used per application: The average utilization of the framework. For example, x percent of classes in a framework are in a typical application. o The average portion of code in an application that is built from the framework Horizontal framework: Portion of Application Generality Portion of Framework used 4

Vertical Framework: Portion of Application Generality Portion of Framework used 5

4. Example: Components for Java (BC4J) http://technet.oracle.com/tech/java/jroadmap/bc4j/listing.htm What is BC4J? o Oracle Business Components for Java (BC4J) is Oracle JDeveloper's programming framework for building scalable, multi-tier database applications from reusable business components. o It is a 100%-Java, XML-powered framework that enables productive development, portable deployment, and flexible customization of multitier. o BC4J Architecture: BC4J is the middle layer in a relational environment: Java Application BC4J Database Why BC4J? o Why would you connect to a database using JDBC? o Why would you use java.sql.* or SQLJ to interact with the database? o Why would you create all the database tables manually? 6

Different Types of BC4J Components o Application Module (AM) Provides a logical container for view objects, view links, and transactions Takes care of database connections Takes care of row locking o Entity Object (EO) Provides a wrapper for database structures Create an EO for each table, view, or stored procedure EOs contain Attributes, corresponding to columns or procedure parameters o View Object (VO) Hide the complexity of the database from the application Uses SQL query to specify filtered subsets of data from one or more EO VO Attributes correspond to EO Attributes Provide cached, navigable, modifiable result sets Provide runtime dynamic linking, sorting, and filtering o Association Defines the relationship between two entity objects. o View Link Defines the relationship between two view objects. Java Application VO VO VO VO AM EO EO EO EO BC4J Database 7

A BC4J system o An XML file, and possibly one or more JAVA files, represents each BC4J component o The XML file stores metadata while the Java file stores the object's code that implements application-specific behavior. o The following figure shows the relationship between different components in the BC4J framework at the runtime. 8

5. Existing Frameworks Examples of Existing Frameworks: Aranea InternetBeans Apache Express Cocoon JavaServerFaces Apache Struts Jerrata Backbone ATK - Jifty Achievo Karrigell ToolKit Mach-II Biscuit Maypole BinaryCloud Millstone BlueShoes OpenACS CakePHP OpenMocha Catalyst Ozone PHP Cocoon Framework Django PageKit ez publish PHP on TRAX Fusebox PRADO Helma Pylons Horde Quixote Radicore RIFE Ruby on Rails Seagull Seam Spring Stripes Symfony Tapestry Trailes TurboGears web.py WebObjects WebWork Wicket Zend Zope ZK Java Web Application Frameworks o Struts Action o Struts Shale o Java Server Faces o WebWork o Tapestry o Wicket o Cocoon o RIFE 9

o Seam o Spring o Stripes o Trails o InternetBeans Express 10

6. Presistence Frameworks Persistence Frameworks o A persistence framework moves the program data in its most natural form (in memory objects) to and from a permanent data store the database. o Persistence framework simplifies the development process. o The persistence framework manages the database and the mapping between the database and the objects. o There are many persistence framework (both Open Source and Commercial) in the market. Examples: o Hibernate - widely used open-source persistence framework for Java. o NHibernate for.net languages o ibatis - simple, uses SQL maps. Database schema not transparent to Java code. o Entity Enterprise JavaBeans - uses EJB container services to perform persistence. o Cayenne - Apache project, has GUI modeler that eliminates need to write xml files. Can reverse engineer database or generate database schema & Java code. o TopLink (Oracle), o Torque (Apache DB) o The Apache Gora open source framework provides an inmemory data model and persistence for big data 7. Content Management System Frameworks Systems that store and manage content (centralized or decentralized) Popular examples include: Joomla, Drupal, Apache Lenya (Based on Cocoon) 11

A complete list can be found in http://en.wikipedia.org/wiki/list_of_content_management_systems 8. Cocoon Framework 12

9. Summary Objectives Frameworks Classification Examples 13