220 likes | 239 Views
Learn about Oracle's Application Development Framework (ADF) and how it integrates with Enterprise JavaBeans (EJB). This comprehensive guide covers the ADF components, wizards, and concepts, as well as the integration of EJBs into a Service-Oriented Architecture (SOA).
E N D
CIS 764 Database Systems Engineering L7. ADF + EJB Context: Oracle Application Development Framework …but … only EJB homework for now. http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Oracle Fusion http://en.wikipedia.org/wiki/Oracle_Fusion_Middleware … the whole middleware suite … application server (including OC4J) BEPL manager (business process execution language) business rules system messaging service ADF <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< JDeveloper Toplink Forms services Business Intelligence tools (monitoring, mining, analysis) Portal & portlets Identity & single sign-on … others.. the integration of eBus components (as PeopleSoft) into a SOA. http://www.cis.ksu.edu
CIS 764 Database Systems Engineering eWeek.com January 19, 2006 “ The lack of detail in Oracle's Fusion Application presentation suggests to some industry experts that the company is not at the halfway point in developing a merged suite. “ http://www.cis.ksu.edu
CIS 764 Database Systems Engineering • ADF • http://en.wikipedia.org/wiki/Oracle_Application_Development_Framework • included in JDev, • ADF is the conceptual model, components, and wizards • possible model components: • EJB, WebService, TopLink, ADF_business_components • controller: • Struts, JSF (Java Server Faces) • view: • Swing, JSP, JSF • all components conf via XML, for easy reconfig, reuse. http://www.cis.ksu.edu
CIS 764 Database Systems Engineering ADF Index Page http://www.oracle.com/technology/products/adf/index.html ADF Overview, http://www.oracle.com/technology/products/jdev/collateral/ papers/1013/adf_10.1.3_overview.pdf 11 pages, 2006 http://www.cis.ksu.edu
CIS 764 Database Systems Engineering http://www.cis.ksu.edu
CIS 764 Database Systems Engineering http://www.cis.ksu.edu
CIS 764 Database Systems Engineering GUI components Swing … only in Java apps (not in server) JSP ….. Weak components (button, form ), not automated data binding. JSF …. Web components , w data binding . ADF Faces … Oracle’s own extensions of JSF and with DB binding for use in apps. http://www.cis.ksu.edu
CIS 764 Database Systems Engineering http://www.oracle.com/technology/products/adf/learnadf.html ADF Learning Center: two tracks: * IDE Fusion … JSF, ADF Faces, ADF Model, ADF Business Components http://www.oracle.com/technology/products/jdev/viewlets/1013/ ADF_Overview_Viewlet_viewlet_swf.html an animation and SC example * Java programmer…. JSF, ADF Faces ,ADF Model , EJB3.0, TopLink http://www.cis.ksu.edu
CIS 764 Database Systems Engineering http://www.oracle.com/technology/obe/ADF_tutorial_1013/ADF_tutorial.pdf 170 pp … pdf for sample application, ServiceCompany .. Service requests for large appliances http://www.oracle.com/technology/obe/ADF_tutorial_1013/index.htm index page for the following: http://www.oracle.com/technology/products/jdev/samples/srdemo.html completed SC demo web app (required JUnit extension to JDev) http://download.oracle.com/otn_hosted_doc/jdeveloper/1013/adfdevguide.pdf 674 pp ADF guide ! http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Assignment: just listen to the following Steve Muench , ADF weblog http://radio.weblogs.com/0118231/stories/2005/06/24/jdeveloperAdfScreencasts.html Select #4: ( animated demo w audio) Creating a Databound, Master/Detail Swing Panel Using JGoodies Form Layout http://www.oracle.com/technology/products/jdev/tips/muench/screencasts/ simplejgoodies/binding_demo.html?_template=/ocom/ocom_item_templates/print http://www.cis.ksu.edu
CIS 764 Database Systems Engineering EJB3 POJO + Annotations => EJB EJB 3.0 Resources http://www.oracle.com/technology/tech/java/ejb30.html Introduction: http://www.oracle.com/technology/tech/java/newto/introejb.htm or Java World: (has more code examples) http://www.javaworld.com/javaworld/jw-08-2004/jw-0809-ejb.html http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Entity bean … bound to entity data, with unique key value; can contain multiple subitems. where is the concept of a result set ? Session bean … “session beans generally represent actions …” << bad OO ! “process entity” vs “data entity” Stateless … “do not have internal state” ( ) … rather: do not keep track of the callers state ! Statefull …..maintains the conversation state across multiple method invocations (e.g. a shopping cart) Beans have an associated deployment descriptor Beans have own QL … “OO version of sql “ http://www.cis.ksu.edu
CIS 764 Database Systems Engineering EJB annotations http://www.fnogol.de/archives/2005/05/13/ejb-30-annotations-cheat-sheet/ http://www.cis.ksu.edu
CIS 764 Database Systems Engineering http://www.cis.ksu.edu
CIS 764 Database Systems Engineering import javax.ejb.Stateless.*; @Stateless(name="CalculateEJB")public class CalculateEJBBean implements CalculateEJB{ int value = 0; public String incrementValue() { value++; return "value incremented by 1"; }} http://www.cis.ksu.edu
CIS 764 Database Systems Engineering import javax.persistence.*;import java.util.ArrayList;import java.util.Collection; @Entity@Table(name = "EMPLOYEES")public class Employee implements java.io.Serializable{ private int empId; private String eName; private double sal;@Id@Column(name="EMPNO", primaryKey=true) /* getters and setters here … see next slide } http://www.cis.ksu.edu
CIS 764 Database Systems Engineering public int getEmpId( ) { return empId; } public void setEmpId(int empId) { this.empId = empId; } public String getEname( ) { return eName; } public void setEname(String eName) { this.eName = eName; }public double getSal( ) { return sal; }public void setSal(double sal) { this.sal = sal; }public String toString(){ StringBuffer buf = new StringBuffer(); buf.append("Class:").append(this.getClass(). getName()).append(" :: ").append(" empId:").append(getEmpId()). append(" ename:").append(getEname()).append("sal:").append(getSal()); return buf.toString();} ??? Why the toString method <<<<<<<<<<<<<<<< ??? Why ArrayList and Collection http://www.cis.ksu.edu
CIS 764 Database Systems Engineering import javax.naming.Context;import javax.naming.InitialContext; public class CalculateejbClient { public static void main(String [] args) { Context context = new InitialContext(); CalculateEJB myejb = (CalculateEJB)context.lookup("java:comp/env/ejb/CalculateEJB"); myejb.incrementValue(); }} ??? Where does this “client” run ?? http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Homework: Oracle EJB3 Simple Tutorial http://www.oracle.com/technology/obe/obe1013jdev/10131/10131_ejb_30/ejb_30.htm Do an “in essence” version for the PO DB. Note: this is not a web app. The client has remote access to the bean. Post snapshots in JDev and running the client. http://www.cis.ksu.edu
CIS 764 Database Systems Engineering Note: Future requirements: Contribute some tutorial content … Contribute some technical presentation …. … prior approval of topics is required. http://www.cis.ksu.edu
CIS 764 Database Systems Engineering end. http://www.cis.ksu.edu