SlideShare uma empresa Scribd logo
1 de 30
Pure EJB within an Agile Context
       Atlanta BEA dev2dev User Group
          Monday. October 10, 2005




                                        Presented by:
                                        Noam Bunder
                                        Sekhar Atteri
                                        Larry Williams


                                               Version 3.0
07/07/09




                Questions:
                    What do we mean by Pure EJBs?
                    Can you make EJBs work in an Agile Methodology?
                    Where do new frameworks fit in (Spring, etc.)?
                    Can you use Eclipse and Workshop in harmony?
                    What benefits do you get from Continuous Builds?
                    How does Hibernate fit in?
                    What does Maven bring to the table?




Atlanta BEA User Group                                                 2
07/07/09
                                                                                Overview

                Overview:
                    Combining a plain-vanilla Enterprise Java implementation, with the
                    processes and tools common to Agile methods. Based upon
                    WebLogic Portal, this session shows how to leverage Eclipse, Maven,
                    CruiseControl and Hibernate for efficient development. We will
                    review the architecture and development process, as well address
                    challenges with the approach.




Atlanta BEA User Group                                                                 3
07/07/09
                                                                               Agenda

                Agenda:
                    7:00pm   –   7:30pm:   Review the Architecture
                    7:30pm   –   7:45pm:   Present Development Tool Set
                    7:45pm   –   8:00pm:   Describe Continuous Build Process
                    8:00pm   –   8:30pm:   Q & A / Open Discussion




Atlanta BEA User Group                                                              4
Architecture
07/07/09
                                          Architecture – Assumptions, Drivers, Constraints and Challenges

                Architecture
                    Assumptions
                         Will be hosted as an ASP model, thus it must server multiple customers,
                         with different load and customization demands
                         Must be understood, will be adopted company wide for new product suite
                    Drivers
                         Keep it Simple and Flexible
                         Leverage Existing, Proven Technology and Design
                         Provide a Foundation that is Extensible
                    Constraints
                         Interoperability with Legacy System
                         Time – Product to be delivered to customer for UAT within 5 months
                         Management Directive: Scrum Process
                    Challenges
                         Ramp Up and Integration of Tool Set and Deployment Model
                         Managing Risks with Key Partners/Software Vendors


Atlanta BEA User Group                                                                                  6
07/07/09
                                                Architecture - Components

                Architecture – Component View




Atlanta BEA User Group                                                  7
07/07/09
                                                                                       Architecture – Design Patterns

                Key Design Patterns
                        Proxy Pattern
                               Client Agent hides EJB Invocation
                        Session Facade
                               Aggregates Business Services
                        DAO Pattern
                               Abstracts Persistence Strategy
                                                                 Client                                            Data
                                                                 Agent                                         Access Object
                                     Portal                                         Application
                                                                Factory               Server                      Factory




                                                                                    Session
                                          Portal      Java                 Client                        Business           Data
                                                                                    Facade
                                          Servlet   PageFlows              Agent                         Services       Access Object
                                                                                     (EJB)


                Presentation Tier                                                                                          Hibernate

                Middle Tier                                                Value                    Data
                                                      JSPs                                        Transfer
                                                                          Objects                 Objects                      Oracle
                Data Tier


Atlanta BEA User Group                                                                                                                  8
07/07/09
                                                      Architecture – Proxy Pattern and Session Facade

                Facades add a layer of abstraction to the architecture allowing application and
                business semantics to be reflected in the Façade’s public methods
                A Façade is an “agent” of the client running co-resident with services
                Provide an application-friendly broker that will aggregate service invocations
                Although they execute on the server within the EJB Container, Facades are
                designed to serve as brokers for the web-tier clients (i.e., client agents)
                Facades can be an effective tool to minimize web-tier calls into the EJB-tier
                Facades should only contain lightweight logic delegating heavy-weight logic to
                collaborating business service component
                Facades should have some structural form to provide standard processing for
                each method
                    Pre-Call Validation
                    Call Sequencing
                    Post-Call Validation
                    DTO Building



Atlanta BEA User Group                                                                              9
07/07/09
                                                        Architecture – Data Access Object with Hibernate

                Resource access objects must accommodate both transactional and non-transaction
                semantics
                Resource access objects should serve the purpose of insulating the architecture from
                the technical nuances of the external resources
                Resource Access Objects vend business objects to the services layer and interact with
                RDBMS systems or web service providers using the native protocols of the external
                resource
                Resource access objects come is different types
                     Database Access Objects
                     Web Service Access Objects
                     JMS Access Objects
                Access objects should be hidden behind a service object, Façade components and
                presentation-tier components should never create direct references to access objects
                DAOs are implemented using Hibernate
                Hibernate manages the mapping between the business domain model and the
                underlying relational database structure
                Hibernate exposes a suite of CRUD APIs to the service layer allowing service methods
                to create, retrieve, update, or delete business objects as needed



Atlanta BEA User Group                                                                                10
07/07/09
                         Architecture – Sequence Diagram




Atlanta BEA User Group                                11
07/07/09
                                                                   Architecture – Key Success Factors

                Begin Early with Domain Model
                    Fit Database Schema to Object Model in a reasonable fashion
                         Both a blessing (huge time saving) and a curse (making changes to the
                         db model to make it work for java applications)
                Partner with BEA Professional Services
                    Early for prototype, Midway for review and End for deployment
                Leverage BEA Support
                Get the best developers you can find
                    Three or Four Senior Leads
                Have finely controlled Architectural Constraints.
                    Clear cut responsibilities for each package means faster time from
                    use case to implementation
                Invest Time enforcing Code Reviews


Atlanta BEA User Group                                                                             12
Development
  Tool Set
07/07/09
                                                Development Tool Set – Assumptions, Drivers, Constraints

                Assumptions
                    Provide Developers with a Productive Development Environment without
                    compromising the End Product Architecture
                    Leverage Tools associated with Agile Methodologies (i.e. Scrum)
                    Development Tools will provide “easy-entry” for new Developers
                Drivers
                    Support largest range of possible Java related technologies, while staying as close
                    as possible to mainstream Enterprise Java
                    Leverage WebLogic Portal for Branding and Personalization
                    Leverage Eclipse for Development Ease and Speed
                    Leverage Hibernate for Time to Market and Reduced Database Dependency
                    Leverage Cactus for In-Container Testing
                    Script and Automate as much as possible to reduce human error
                    Provide visibility to Development to close loop - MTTBF (Mean Time to Bug Fix)
                Constraints
                    Minimize reliance on WebLogic Workshop to be replaced by Eclipse by Q4 2005
                    Scrum process does not allow for abundance of documentation



Atlanta BEA User Group                                                                                14
07/07/09
                                                                     Development Tool Set – Challenges

                Challenges
                    Development Environment requires precise configuration
                    Big lettered Slides have been successful in assuring compliance
                    ½ Day walkthrough required to get new developers up and running
                    A “Development Core Image” does not provide everything
                    The installation of Maven (1st running) must occur within the User Profile, where
                    it builds its local repository
                    Working with a WebLogic Portal Project required some components to not be
                    checked in to StarTeam, complicating a fresh-pull of code
                    Developers can “debug through” Back End code when exercised by Unit Tests,
                    however Front End developers cannot debug Back End code, for it is compiled and
                    copied into APP-INF/lib
                    Unit Tests are insufficient and can be sloppy. Although Code compiles, Unit Tests
                    hog memory and can interrupt continuous build cycle




Atlanta BEA User Group                                                                              15
07/07/09
      Development Tools
         Eclipse
                Multiple Projects
                Using Mevenide Plug-in
         Maven
                Manages Dependencies
                Produces Web Sites
                Runs Build, Tests and Metrics
         WebLogic Workshop
                Using JARs copied by Maven
                PageFlows expose Business Logic
         Hibernate
                HBM files with associated code
         Cactus
                Exercised by Maven Plug-In


Atlanta BEA User Group                            16
07/07/09
                                                                                  Development Tool Set - Lifecycle

                Lifecycle: Code > Build > Test > Deploy
                                                                                                    •   Cactus Unit Testing
                Eclipse                                                                             •
                                                                                                    •
                                                                                                        Integration Testing
                                                                                                        Profiling
                    Code, Build and Test
                Maven
                    Build, Test and Deploy                  Eclipse Responsibility Space



                                                         Code             Build              Test                Deploy



                                                                                   Maven Responsibility Space




                             •   Source Generation                                                  •   Doc. Generation
                             •   Compilation                                                        •   Artifact Trending
                             •   Dependant Projects                                                 •   Project Website
                             •   Resource Dependencies                                              •   Notification
                             •   Artifact Generation


Atlanta BEA User Group                                                                                                      17
07/07/09
                                                                         Development Tool Set - Maven

            Maven                                                                             Build
                    Acts like a “Container” providing Services
                                                                                      Task
                         Services for Build = Goals and Plug-Ins                      Calls

                    Maven does not equal ANT
                         ANT is not multi-project and dependency aware               Developed ANT Tasks

                    Goes Beyond ANT to Provide a Multi-Project Build Script
                    Manages Dependencies via Local and Remote Repositories
                    Integrates into Eclipse (Development IDE)
                    Provides Automated Quality and Unit Tests               Build

                    Provides a Multitude of Plug-Ins
                    Generates Reports (Web Site)                            Maven


                                                                                     Maven Built-In Goals
                                                                                        and Plug-Ins




Atlanta BEA User Group                                                                                      18
07/07/09
                                                                                Development Tool Set – Maven and ANT

                       ANT and Maven within the Build Process
                                                                  ANT                                  ANT




                Back End                           Front End      Label                                       Deploy/
                                                                                         Un-deploy
                 Code                                Code       StarTeam                                     Configure

                         coreejb                    pageflows
      MAVEN / Cactus




                                     Copy to web
                                       project
                                                                StarTeam
                           infr                       portal
                                                                                         Development          QA Smoke

                                                   BUILD EAR




                                                                     EAR FILE
                          core


                                                      ANT
                       coresupport
                                                                                          QA Smoke            QA Server



                                     ANT

Atlanta BEA User Group                                                                                                    19
07/07/09
                                                Development Tool Set – Maven Website Screen Shot

                Cactus Unit Test Cases Report




Atlanta BEA User Group                                                                        20
Continuous
Build Process
07/07/09
                               Continuous Build Process – Assumptions, Drivers, Constraints and Challenges

                Assumptions
                    Agile Methodology (Scrum) to be followed, requiring daily status
                    Development will include Iterative Integration and Testing
                Drivers
                    Provide visibility and proper focus to development
                    Reduce down time between compile-breakages
                    Focus improvement upon realistic and objective metrics
                Constraints
                    Tools do not extend fully into Workshop files (JPF, etc.)
                    Unit Testing not emphasized (green = good compile only)
                Challenges
                    Lack of discipline around Cactus Tests made for long-build times (~15 minutes)
                    Stability issues




Atlanta BEA User Group                                                                                  22
07/07/09
                                                                             Continuous Build Process

                Separate Developer Workstation
                    Running Simple
                    HTTP Server
                    WebLogic Portal
                CruiseControl scheduled
                to kick-off build every
                20 minutes
                Green Light / Red Light
                    via X10 devices
                                          Timed to run every 20 minutes,
                                          6:00am – 10:00pm


                                          Scheduled Build at 2:00 AM
                                          Prepares build for QA (optional)




Atlanta BEA User Group                                                                             23
Summary
07/07/09




                Partner with BEA Professional Services
                Leverage BEA Support
                Send folks to BEA Educational Services classes
                Visit dev2dev often for articles and code library
                Get the best developers you can – at least 3 seasoned leads
                Focus on what works, take risks where they are manageable
                Integrate BEA with other departments early (IT, Support, etc.)
                Design, Code and Lead by Example




Atlanta BEA User Group                                                           25
Take Away
Tips/Hints
07/07/09
      Maven Details

                Maven in 3 concepts:
                    POM (Project Object Model)
                    Plugins
                         Made of Goals = Actions
                    Repositories
                Maven files (in 3):
                    project.xml
                         POM
                    maven.xml
                         Custom goals in Jelly
                         Goal, preGoal, postGoal
                    Configuration
                         project.properties
                         build.properties


Atlanta BEA User Group                             27
07/07/09
                         Maven POM Example




Atlanta BEA User Group                  28
07/07/09
                                                                            Cruise Control Details

                CruiseControl Configuration
                     config.xml – CruiseControl Configuration (see next slide)
                Build Files
                     build.xml – Full Clean and Full Check Out (Get Latest)
                         ant – (default target)
                         Calls the Clean and StCheckout Targets
                     build-cc.xml – Full Build and (Separately) Deploy
                         ant –f build-cc.xml scheduled –Dlabel=build.xx
                          • Full Build
                          • Update the Footer with the Label
                          • Label StarTeam
                         Separate Deployment Targets for each Environment




Atlanta BEA User Group                                                                          29
07/07/09
                                                                                                 Cruise Control Sample Configuration File
                <project name=“project">
                  <bootstrappers>
                           <antbootstrapper />
                  </bootstrappers>
                     <modificationset><alwaysbuild/></modificationset>
                     <schedule interval="600">
                          <maven goal="multiproject:install
                                          cleanDB
                                          multiproject:site"
                                          projectfile="C:/_project/source/server/project.xml“
                                          mavenscript="C:Maven_1.0.2/bin/maven.bat"/>
                          <pause starttime="2200" endtime="0530"/>
                          <pause day="sunday" starttime="0001" endtime="2400"/>
                          <pause day="saturday" starttime="0001" endtime="2400"/>
                     </schedule>
                     <publishers>
                          <email buildresultsurl="http://buildmachine:8080/cruisecontrol/index.jsp"
                                      defaultsuffix="@mailserver.com"
                                      mailhost=“IPADDRESS"
                                      reportsuccess="fixes"
                                      returnaddress="buildmachine"
                                      subjectprefix="Integration build - ">
                                         <always address=“developer"/>
                          </email>
                          <x10publisher port="COM1" passDeviceCode="A3" failDeviceCode="A2"/>
                          <x10publisher port="COM1" passDeviceCode="B3" failDeviceCode="B2"/>
                          <artifactspublisher dir="C:/_project/source/server/target/docs“ dest="artifacts/project"/>
                       </publishers>
                  </project>

Atlanta BEA User Group                                                                                                                 30

Mais conteúdo relacionado

Mais procurados

Expendables E-AppStore
Expendables E-AppStoreExpendables E-AppStore
Expendables E-AppStorelobalint
 
(ATS3-GS03) Accelrys Enterprise Platform Deeper Dive
(ATS3-GS03) Accelrys Enterprise Platform Deeper Dive(ATS3-GS03) Accelrys Enterprise Platform Deeper Dive
(ATS3-GS03) Accelrys Enterprise Platform Deeper DiveBIOVIA
 
Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)blahap
 
Implementing Applications with SOA and Application Integration Architecture
Implementing Applications with SOA and Application Integration ArchitectureImplementing Applications with SOA and Application Integration Architecture
Implementing Applications with SOA and Application Integration ArchitectureBob Rhubart
 
Ejb course in-mumbai
Ejb course in-mumbaiEjb course in-mumbai
Ejb course in-mumbaivibrantuser
 
Chris meyer gl wand - financial reporting in excel
Chris meyer   gl wand - financial reporting in excelChris meyer   gl wand - financial reporting in excel
Chris meyer gl wand - financial reporting in excelBerry Clemens
 
Aras Vision and Roadmap with Aras Innovator PLM Software
Aras Vision and Roadmap with Aras Innovator PLM SoftwareAras Vision and Roadmap with Aras Innovator PLM Software
Aras Vision and Roadmap with Aras Innovator PLM SoftwareAras
 
[S lide] java_sig-spring-framework
[S lide] java_sig-spring-framework[S lide] java_sig-spring-framework
[S lide] java_sig-spring-frameworkptlong96
 
Research platform architecture
Research platform architectureResearch platform architecture
Research platform architecturePierre Menard
 
DevOps for Mobile - DevOpsDays, NY, 2013
DevOps for Mobile - DevOpsDays, NY, 2013DevOps for Mobile - DevOpsDays, NY, 2013
DevOps for Mobile - DevOpsDays, NY, 2013Sanjeev Sharma
 
3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_kIBM
 
OreDev 2008: Software + Services
OreDev 2008: Software + ServicesOreDev 2008: Software + Services
OreDev 2008: Software + Servicesukdpe
 
Workflow bis17
Workflow bis17Workflow bis17
Workflow bis17sakpob
 
N(i)2 technical architecture 2.0 (v1 1)
N(i)2 technical architecture 2.0 (v1 1)N(i)2 technical architecture 2.0 (v1 1)
N(i)2 technical architecture 2.0 (v1 1)kvz
 
ALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 WorldALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 Worldoslc
 
Aras PLM Viewing Markup and Secure Social
Aras PLM Viewing Markup and Secure SocialAras PLM Viewing Markup and Secure Social
Aras PLM Viewing Markup and Secure SocialAras
 
Resource Oriented Architecture in Wireless Sensor Network
Resource Oriented Architecture in Wireless Sensor NetworkResource Oriented Architecture in Wireless Sensor Network
Resource Oriented Architecture in Wireless Sensor NetworkThomas Pham
 
Programming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionappsProgramming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionappsBerry Clemens
 
Reusing Existing Java EE Applications from SOA Suite 11g
Reusing Existing Java EE Applications from SOA Suite 11gReusing Existing Java EE Applications from SOA Suite 11g
Reusing Existing Java EE Applications from SOA Suite 11gGuido Schmutz
 

Mais procurados (20)

Expendables E-AppStore
Expendables E-AppStoreExpendables E-AppStore
Expendables E-AppStore
 
(ATS3-GS03) Accelrys Enterprise Platform Deeper Dive
(ATS3-GS03) Accelrys Enterprise Platform Deeper Dive(ATS3-GS03) Accelrys Enterprise Platform Deeper Dive
(ATS3-GS03) Accelrys Enterprise Platform Deeper Dive
 
Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)
 
Implementing Applications with SOA and Application Integration Architecture
Implementing Applications with SOA and Application Integration ArchitectureImplementing Applications with SOA and Application Integration Architecture
Implementing Applications with SOA and Application Integration Architecture
 
Ejb course in-mumbai
Ejb course in-mumbaiEjb course in-mumbai
Ejb course in-mumbai
 
Chris meyer gl wand - financial reporting in excel
Chris meyer   gl wand - financial reporting in excelChris meyer   gl wand - financial reporting in excel
Chris meyer gl wand - financial reporting in excel
 
Aras Vision and Roadmap with Aras Innovator PLM Software
Aras Vision and Roadmap with Aras Innovator PLM SoftwareAras Vision and Roadmap with Aras Innovator PLM Software
Aras Vision and Roadmap with Aras Innovator PLM Software
 
[S lide] java_sig-spring-framework
[S lide] java_sig-spring-framework[S lide] java_sig-spring-framework
[S lide] java_sig-spring-framework
 
Research platform architecture
Research platform architectureResearch platform architecture
Research platform architecture
 
DevOps for Mobile - DevOpsDays, NY, 2013
DevOps for Mobile - DevOpsDays, NY, 2013DevOps for Mobile - DevOpsDays, NY, 2013
DevOps for Mobile - DevOpsDays, NY, 2013
 
3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k
 
OreDev 2008: Software + Services
OreDev 2008: Software + ServicesOreDev 2008: Software + Services
OreDev 2008: Software + Services
 
Workflow bis17
Workflow bis17Workflow bis17
Workflow bis17
 
N(i)2 technical architecture 2.0 (v1 1)
N(i)2 technical architecture 2.0 (v1 1)N(i)2 technical architecture 2.0 (v1 1)
N(i)2 technical architecture 2.0 (v1 1)
 
ALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 WorldALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 World
 
Aras PLM Viewing Markup and Secure Social
Aras PLM Viewing Markup and Secure SocialAras PLM Viewing Markup and Secure Social
Aras PLM Viewing Markup and Secure Social
 
July 7 Demo Deck
July 7 Demo DeckJuly 7 Demo Deck
July 7 Demo Deck
 
Resource Oriented Architecture in Wireless Sensor Network
Resource Oriented Architecture in Wireless Sensor NetworkResource Oriented Architecture in Wireless Sensor Network
Resource Oriented Architecture in Wireless Sensor Network
 
Programming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionappsProgramming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionapps
 
Reusing Existing Java EE Applications from SOA Suite 11g
Reusing Existing Java EE Applications from SOA Suite 11gReusing Existing Java EE Applications from SOA Suite 11g
Reusing Existing Java EE Applications from SOA Suite 11g
 

Semelhante a Pure Ejb Within An Agile Context

WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee rapid web app development teck stack
WebBee rapid web app development teck stackALDAN3
 
Oracle ADF Overview
Oracle ADF OverviewOracle ADF Overview
Oracle ADF OverviewBahaa Farouk
 
SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA
 
J2EE PPT --CINTHIYA.M Krishnammal college for women
J2EE PPT --CINTHIYA.M Krishnammal college for womenJ2EE PPT --CINTHIYA.M Krishnammal college for women
J2EE PPT --CINTHIYA.M Krishnammal college for womenlissa cidhi
 
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your applicationjavablend
 
02 Ms Online Identity Session 1
02 Ms Online Identity   Session 102 Ms Online Identity   Session 1
02 Ms Online Identity Session 1Sivadon Chaisiri
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009Stefane Fermigier
 
Metaaso J Webframework
Metaaso J WebframeworkMetaaso J Webframework
Metaaso J Webframeworkjwebframework
 
Summer training java
Summer training javaSummer training java
Summer training javaArshit Rai
 
Modernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructureModernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructurezslmarketing
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework EngineeringYoungSu Son
 
Summer training java
Summer training javaSummer training java
Summer training javaArshit Rai
 
Introduction to java ee
Introduction to java eeIntroduction to java ee
Introduction to java eeRanjan Kumar
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts frameworks4al_com
 
Aras PLM Roadmap
Aras PLM RoadmapAras PLM Roadmap
Aras PLM RoadmapAras
 
Architecture1101 jy21cyl
Architecture1101 jy21cylArchitecture1101 jy21cyl
Architecture1101 jy21cylZouhayr Rich
 
Introduction To J Boss Seam
Introduction To J Boss SeamIntroduction To J Boss Seam
Introduction To J Boss Seamashishkulkarni
 

Semelhante a Pure Ejb Within An Agile Context (20)

Virtual classroom
Virtual classroomVirtual classroom
Virtual classroom
 
WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee rapid web app development teck stack
WebBee rapid web app development teck stack
 
Oracle ADF Overview
Oracle ADF OverviewOracle ADF Overview
Oracle ADF Overview
 
SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case Study
 
Virtual Classroom
Virtual ClassroomVirtual Classroom
Virtual Classroom
 
J2EE PPT --CINTHIYA.M Krishnammal college for women
J2EE PPT --CINTHIYA.M Krishnammal college for womenJ2EE PPT --CINTHIYA.M Krishnammal college for women
J2EE PPT --CINTHIYA.M Krishnammal college for women
 
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
 
02 Ms Online Identity Session 1
02 Ms Online Identity   Session 102 Ms Online Identity   Session 1
02 Ms Online Identity Session 1
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
 
Metaaso J Webframework
Metaaso J WebframeworkMetaaso J Webframework
Metaaso J Webframework
 
Summer training java
Summer training javaSummer training java
Summer training java
 
Modernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructureModernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructure
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework Engineering
 
Summer training java
Summer training javaSummer training java
Summer training java
 
Frameworks in java
Frameworks in javaFrameworks in java
Frameworks in java
 
Introduction to java ee
Introduction to java eeIntroduction to java ee
Introduction to java ee
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts framework
 
Aras PLM Roadmap
Aras PLM RoadmapAras PLM Roadmap
Aras PLM Roadmap
 
Architecture1101 jy21cyl
Architecture1101 jy21cylArchitecture1101 jy21cyl
Architecture1101 jy21cyl
 
Introduction To J Boss Seam
Introduction To J Boss SeamIntroduction To J Boss Seam
Introduction To J Boss Seam
 

Último

Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 

Último (20)

Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 

Pure Ejb Within An Agile Context

  • 1. Pure EJB within an Agile Context Atlanta BEA dev2dev User Group Monday. October 10, 2005 Presented by: Noam Bunder Sekhar Atteri Larry Williams Version 3.0
  • 2. 07/07/09 Questions: What do we mean by Pure EJBs? Can you make EJBs work in an Agile Methodology? Where do new frameworks fit in (Spring, etc.)? Can you use Eclipse and Workshop in harmony? What benefits do you get from Continuous Builds? How does Hibernate fit in? What does Maven bring to the table? Atlanta BEA User Group 2
  • 3. 07/07/09 Overview Overview: Combining a plain-vanilla Enterprise Java implementation, with the processes and tools common to Agile methods. Based upon WebLogic Portal, this session shows how to leverage Eclipse, Maven, CruiseControl and Hibernate for efficient development. We will review the architecture and development process, as well address challenges with the approach. Atlanta BEA User Group 3
  • 4. 07/07/09 Agenda Agenda: 7:00pm – 7:30pm: Review the Architecture 7:30pm – 7:45pm: Present Development Tool Set 7:45pm – 8:00pm: Describe Continuous Build Process 8:00pm – 8:30pm: Q & A / Open Discussion Atlanta BEA User Group 4
  • 6. 07/07/09 Architecture – Assumptions, Drivers, Constraints and Challenges Architecture Assumptions Will be hosted as an ASP model, thus it must server multiple customers, with different load and customization demands Must be understood, will be adopted company wide for new product suite Drivers Keep it Simple and Flexible Leverage Existing, Proven Technology and Design Provide a Foundation that is Extensible Constraints Interoperability with Legacy System Time – Product to be delivered to customer for UAT within 5 months Management Directive: Scrum Process Challenges Ramp Up and Integration of Tool Set and Deployment Model Managing Risks with Key Partners/Software Vendors Atlanta BEA User Group 6
  • 7. 07/07/09 Architecture - Components Architecture – Component View Atlanta BEA User Group 7
  • 8. 07/07/09 Architecture – Design Patterns Key Design Patterns Proxy Pattern Client Agent hides EJB Invocation Session Facade Aggregates Business Services DAO Pattern Abstracts Persistence Strategy Client Data Agent Access Object Portal Application Factory Server Factory Session Portal Java Client Business Data Facade Servlet PageFlows Agent Services Access Object (EJB) Presentation Tier Hibernate Middle Tier Value Data JSPs Transfer Objects Objects Oracle Data Tier Atlanta BEA User Group 8
  • 9. 07/07/09 Architecture – Proxy Pattern and Session Facade Facades add a layer of abstraction to the architecture allowing application and business semantics to be reflected in the Façade’s public methods A Façade is an “agent” of the client running co-resident with services Provide an application-friendly broker that will aggregate service invocations Although they execute on the server within the EJB Container, Facades are designed to serve as brokers for the web-tier clients (i.e., client agents) Facades can be an effective tool to minimize web-tier calls into the EJB-tier Facades should only contain lightweight logic delegating heavy-weight logic to collaborating business service component Facades should have some structural form to provide standard processing for each method Pre-Call Validation Call Sequencing Post-Call Validation DTO Building Atlanta BEA User Group 9
  • 10. 07/07/09 Architecture – Data Access Object with Hibernate Resource access objects must accommodate both transactional and non-transaction semantics Resource access objects should serve the purpose of insulating the architecture from the technical nuances of the external resources Resource Access Objects vend business objects to the services layer and interact with RDBMS systems or web service providers using the native protocols of the external resource Resource access objects come is different types Database Access Objects Web Service Access Objects JMS Access Objects Access objects should be hidden behind a service object, Façade components and presentation-tier components should never create direct references to access objects DAOs are implemented using Hibernate Hibernate manages the mapping between the business domain model and the underlying relational database structure Hibernate exposes a suite of CRUD APIs to the service layer allowing service methods to create, retrieve, update, or delete business objects as needed Atlanta BEA User Group 10
  • 11. 07/07/09 Architecture – Sequence Diagram Atlanta BEA User Group 11
  • 12. 07/07/09 Architecture – Key Success Factors Begin Early with Domain Model Fit Database Schema to Object Model in a reasonable fashion Both a blessing (huge time saving) and a curse (making changes to the db model to make it work for java applications) Partner with BEA Professional Services Early for prototype, Midway for review and End for deployment Leverage BEA Support Get the best developers you can find Three or Four Senior Leads Have finely controlled Architectural Constraints. Clear cut responsibilities for each package means faster time from use case to implementation Invest Time enforcing Code Reviews Atlanta BEA User Group 12
  • 14. 07/07/09 Development Tool Set – Assumptions, Drivers, Constraints Assumptions Provide Developers with a Productive Development Environment without compromising the End Product Architecture Leverage Tools associated with Agile Methodologies (i.e. Scrum) Development Tools will provide “easy-entry” for new Developers Drivers Support largest range of possible Java related technologies, while staying as close as possible to mainstream Enterprise Java Leverage WebLogic Portal for Branding and Personalization Leverage Eclipse for Development Ease and Speed Leverage Hibernate for Time to Market and Reduced Database Dependency Leverage Cactus for In-Container Testing Script and Automate as much as possible to reduce human error Provide visibility to Development to close loop - MTTBF (Mean Time to Bug Fix) Constraints Minimize reliance on WebLogic Workshop to be replaced by Eclipse by Q4 2005 Scrum process does not allow for abundance of documentation Atlanta BEA User Group 14
  • 15. 07/07/09 Development Tool Set – Challenges Challenges Development Environment requires precise configuration Big lettered Slides have been successful in assuring compliance ½ Day walkthrough required to get new developers up and running A “Development Core Image” does not provide everything The installation of Maven (1st running) must occur within the User Profile, where it builds its local repository Working with a WebLogic Portal Project required some components to not be checked in to StarTeam, complicating a fresh-pull of code Developers can “debug through” Back End code when exercised by Unit Tests, however Front End developers cannot debug Back End code, for it is compiled and copied into APP-INF/lib Unit Tests are insufficient and can be sloppy. Although Code compiles, Unit Tests hog memory and can interrupt continuous build cycle Atlanta BEA User Group 15
  • 16. 07/07/09 Development Tools Eclipse Multiple Projects Using Mevenide Plug-in Maven Manages Dependencies Produces Web Sites Runs Build, Tests and Metrics WebLogic Workshop Using JARs copied by Maven PageFlows expose Business Logic Hibernate HBM files with associated code Cactus Exercised by Maven Plug-In Atlanta BEA User Group 16
  • 17. 07/07/09 Development Tool Set - Lifecycle Lifecycle: Code > Build > Test > Deploy • Cactus Unit Testing Eclipse • • Integration Testing Profiling Code, Build and Test Maven Build, Test and Deploy Eclipse Responsibility Space Code Build Test Deploy Maven Responsibility Space • Source Generation • Doc. Generation • Compilation • Artifact Trending • Dependant Projects • Project Website • Resource Dependencies • Notification • Artifact Generation Atlanta BEA User Group 17
  • 18. 07/07/09 Development Tool Set - Maven Maven Build Acts like a “Container” providing Services Task Services for Build = Goals and Plug-Ins Calls Maven does not equal ANT ANT is not multi-project and dependency aware Developed ANT Tasks Goes Beyond ANT to Provide a Multi-Project Build Script Manages Dependencies via Local and Remote Repositories Integrates into Eclipse (Development IDE) Provides Automated Quality and Unit Tests Build Provides a Multitude of Plug-Ins Generates Reports (Web Site) Maven Maven Built-In Goals and Plug-Ins Atlanta BEA User Group 18
  • 19. 07/07/09 Development Tool Set – Maven and ANT ANT and Maven within the Build Process ANT ANT Back End Front End Label Deploy/ Un-deploy Code Code StarTeam Configure coreejb pageflows MAVEN / Cactus Copy to web project StarTeam infr portal Development QA Smoke BUILD EAR EAR FILE core ANT coresupport QA Smoke QA Server ANT Atlanta BEA User Group 19
  • 20. 07/07/09 Development Tool Set – Maven Website Screen Shot Cactus Unit Test Cases Report Atlanta BEA User Group 20
  • 22. 07/07/09 Continuous Build Process – Assumptions, Drivers, Constraints and Challenges Assumptions Agile Methodology (Scrum) to be followed, requiring daily status Development will include Iterative Integration and Testing Drivers Provide visibility and proper focus to development Reduce down time between compile-breakages Focus improvement upon realistic and objective metrics Constraints Tools do not extend fully into Workshop files (JPF, etc.) Unit Testing not emphasized (green = good compile only) Challenges Lack of discipline around Cactus Tests made for long-build times (~15 minutes) Stability issues Atlanta BEA User Group 22
  • 23. 07/07/09 Continuous Build Process Separate Developer Workstation Running Simple HTTP Server WebLogic Portal CruiseControl scheduled to kick-off build every 20 minutes Green Light / Red Light via X10 devices Timed to run every 20 minutes, 6:00am – 10:00pm Scheduled Build at 2:00 AM Prepares build for QA (optional) Atlanta BEA User Group 23
  • 25. 07/07/09 Partner with BEA Professional Services Leverage BEA Support Send folks to BEA Educational Services classes Visit dev2dev often for articles and code library Get the best developers you can – at least 3 seasoned leads Focus on what works, take risks where they are manageable Integrate BEA with other departments early (IT, Support, etc.) Design, Code and Lead by Example Atlanta BEA User Group 25
  • 27. 07/07/09 Maven Details Maven in 3 concepts: POM (Project Object Model) Plugins Made of Goals = Actions Repositories Maven files (in 3): project.xml POM maven.xml Custom goals in Jelly Goal, preGoal, postGoal Configuration project.properties build.properties Atlanta BEA User Group 27
  • 28. 07/07/09 Maven POM Example Atlanta BEA User Group 28
  • 29. 07/07/09 Cruise Control Details CruiseControl Configuration config.xml – CruiseControl Configuration (see next slide) Build Files build.xml – Full Clean and Full Check Out (Get Latest) ant – (default target) Calls the Clean and StCheckout Targets build-cc.xml – Full Build and (Separately) Deploy ant –f build-cc.xml scheduled –Dlabel=build.xx • Full Build • Update the Footer with the Label • Label StarTeam Separate Deployment Targets for each Environment Atlanta BEA User Group 29
  • 30. 07/07/09 Cruise Control Sample Configuration File <project name=“project"> <bootstrappers> <antbootstrapper /> </bootstrappers> <modificationset><alwaysbuild/></modificationset> <schedule interval="600"> <maven goal="multiproject:install cleanDB multiproject:site" projectfile="C:/_project/source/server/project.xml“ mavenscript="C:Maven_1.0.2/bin/maven.bat"/> <pause starttime="2200" endtime="0530"/> <pause day="sunday" starttime="0001" endtime="2400"/> <pause day="saturday" starttime="0001" endtime="2400"/> </schedule> <publishers> <email buildresultsurl="http://buildmachine:8080/cruisecontrol/index.jsp" defaultsuffix="@mailserver.com" mailhost=“IPADDRESS" reportsuccess="fixes" returnaddress="buildmachine" subjectprefix="Integration build - "> <always address=“developer"/> </email> <x10publisher port="COM1" passDeviceCode="A3" failDeviceCode="A2"/> <x10publisher port="COM1" passDeviceCode="B3" failDeviceCode="B2"/> <artifactspublisher dir="C:/_project/source/server/target/docs“ dest="artifacts/project"/> </publishers> </project> Atlanta BEA User Group 30