SlideShare a Scribd company logo
eSobi WebsiteeSobi Website
Multilayered
ArchitectureArchitecture
Allan Huang @ esobi Inc.Allan Huang @ esobi Inc.
Agenda
 Java EE Web Technique
 Multilayered Architecture
 Presentation / Web Service Layer
 Aspect Oriented Programming
 AOP Terminology
 Proxy Pattern
 Dynamic Proxy
 Inversion Of Control
 Service Locator Layer
 Business Logic Layer
 Data Access Layer
 Domain Object Layer
 Utility Layer
Java EE Web Technique
 A tailored lightweight and multifunctional web platform
for business operations of eSobi.
 Refer some of 14 rules on the book High Performance
Web Sites.
 Design Presentation and Web Service Layer by referring
MVC concept and structure of Struts 2
 Design Business Logic Layer and Data Access Layer by
referring AOP and IoC concept of Spring 2
 Auto-setup all bean instances by using the extends and
implements declarations to reduce the amount of
configuration files.
eSobi Website Multilayered Architecture
eSobi Website Multilayered Architecture
Presentation / Web Service
Layer
 Web Context Listener initializes/destroys needed
resources firstly/lastly while web context is
loaded/unloaded.
 Resource Access Filter intercepts any HTTP requests,
and handles/passes/rejects them, further forward them
to the next handler/servlet.
 The main goal of HTTP ETag Response Stream, HTTP
Cache-Control Header and Compressed Response
Stream reduce the amount or frequency of HTTP
response transmission.
Presentation / Web Service
Layer
 HTTP Request, HTTP Response and Servlet Context
are wrapped in a Request Context is convenience to be
passed to Controllers.
 Page Action and it’s Controller handle HTTP requests
and return an HTML page via Page Forward or Page
Redirect.
 AJAX Call and it’s Controller handle HTTP requests and
return an JSON string that wrapped in AJAX Call Return
and JSON Message.
 Remote Command and It’s Controller handle HTTP
requests and return an XML string in Remote Command
Return and XML Message.
Aspect Oriented Programming
 AOP (Aspect Oriented Programming) that aims to
increase Modularity by allowing the separation of Cross-
Cutting Concerns.
AOP Terminology
 Join point
 A point during the execution of a program, such as the execution
of a method or the handling of an exception.
 Advice
 Action taken by an aspect at a particular join point. Different
types of advice include "around," "before" and "after" advice.
 Pointcut
 A predicate that matches join points.
 Weaving
 linking aspects with other application types or objects to create
an advised object. This can be done at compile time, load time,
or at runtime.
Proxy Pattern
 A surrogate or placeholder for another object to control
access to it.
 Deferred Initialization
 Acts as a "stand-in" for the actual implementation allowing it to be
instantiated only when absolutely necessary.
 Security
 Verify that the user actually has the permission to execute the
method.
 Logging
 Log every method invocation, providing valuable debugging
information.
 Performance Monitoring
 Log each method invocation to a performance monitor allowing
system administrators to see what parts of the system are potentially
bogged down.
Dynamic Proxy
 Using standard Java SE Dynamic Proxies (since JDK1.3)
for AOP proxies. This enables any interface (or set of
interfaces) to be proxied.
Inversion of Control
 The main goal of IOC (Inversion of Control) is to remove
dependencies of an application.
 DI (Dependency Injection) is a subtype of IoC and is
implemented by constructor injection, setter injection or
method injection.
Service Locator Layer
 Singleton Service Bean Factory create all Service Bean
instances at initiate time of web context and put them
into it’s own pool. DAO Bean Factory is the same as
above circumstances.
 According to AOP, all bean instances are constructed by
Java SE Reflection API and create dynamic
implementations of interfaces at runtime by Java SE
Dynamic Proxy API.
Business Logic Layer
 Service Bean must implement specific service interface
that implements IGeneric Service Interface, and extends
Abstract Generic Service.
 Transaction Adviser is responsible for opening SQL
connection, executing target method, committing result,
and finally close SQL connection by Java SE Dynamic
Proxy API.
 Thread Local<Stack> of Transaction Adviser keeps track
of each target method recursively via push and pop
action per thread lifecycle.
Data Access Layer
 DAO Bean must implement specific DAO interface that
implements IGeneric DAO Interface, and extends
Abstract Generic DAO.
 JDBC Utility is responsible for setting SQL Data Source
at initiate time of web context and closing Data Source at
destroy time of web context.
 Thread Local<Connection> of JDBC Utility keeps track
of concurrent connection per thread lifecycle.
Domain Object Layer
 Domain Object classes must extend Abstract Entity
interface.
 Each domain class has an unique ID attribute as primary
key and its default equals and hashCode methods are
overridden.
 Relationships be expressed as Java List or Set structure
among domain classes are constructed by according to
E-R model.
Utility Layer
 Introduce well-known Apache Commons libraries that
contain BeanUtils, Codec, Collections, Compress,
DBCP, DbUtils, Email, FileUpload, IO, Lang, Logging,
Net, Primitives, Proxy, and Log4J, Xerces, etc.
 Develop Utility classes (framework) that are
independence on Java EE web container based on
above libraries.
Reference
 Spring Gossip: AOP 觀念與術語
 Aspect Oriented Programming with Spring
 Java Reflection - Dynamic Proxies
 Apache Commons Proxy
Q&A

More Related Content

What's hot (20)

Spring jdbc
Spring jdbcSpring jdbc
Spring jdbc
Harshit Choudhary
 
Spring core
Spring coreSpring core
Spring core
Harshit Choudhary
 
Spring from a to Z
Spring from  a to ZSpring from  a to Z
Spring from a to Z
sang nguyen
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
Hùng Nguyễn Huy
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
ASG
 
Java spring framework
Java spring frameworkJava spring framework
Java spring framework
Rajiv Gupta
 
CodeIgniter 101 Tutorial
CodeIgniter 101 TutorialCodeIgniter 101 Tutorial
CodeIgniter 101 Tutorial
Konstantinos Magarisiotis
 
Servlet to Spring: Internal Understanding
Servlet to Spring: Internal UnderstandingServlet to Spring: Internal Understanding
Servlet to Spring: Internal Understanding
Knoldus Inc.
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
NexThoughts Technologies
 
Spring framework in depth
Spring framework in depthSpring framework in depth
Spring framework in depth
Vinay Kumar
 
Sprint Portlet MVC Seminar
Sprint Portlet MVC SeminarSprint Portlet MVC Seminar
Sprint Portlet MVC Seminar
John Lewis
 
Spring aop
Spring aopSpring aop
Spring aop
Harshit Choudhary
 
Struts & spring framework issues
Struts & spring framework issuesStruts & spring framework issues
Struts & spring framework issues
Prashant Seth
 
Spring Web MVC
Spring Web MVCSpring Web MVC
Spring Web MVC
zeeshanhanif
 
Spring MVC Basics
Spring MVC BasicsSpring MVC Basics
Spring MVC Basics
Bozhidar Bozhanov
 
Struts,Jsp,Servlet
Struts,Jsp,ServletStruts,Jsp,Servlet
Struts,Jsp,Servlet
dasguptahirak
 
Spring 3.x - Spring MVC - Advanced topics
Spring 3.x - Spring MVC - Advanced topicsSpring 3.x - Spring MVC - Advanced topics
Spring 3.x - Spring MVC - Advanced topics
Guy Nir
 
JDBC Connectivity Model
JDBC Connectivity ModelJDBC Connectivity Model
JDBC Connectivity Model
kunj desai
 
Introduction to Ibatis by Rohit
Introduction to Ibatis by RohitIntroduction to Ibatis by Rohit
Introduction to Ibatis by Rohit
Rohit Prabhakar
 
Jdbc architecture and driver types ppt
Jdbc architecture and driver types pptJdbc architecture and driver types ppt
Jdbc architecture and driver types ppt
kamal kotecha
 
Spring from a to Z
Spring from  a to ZSpring from  a to Z
Spring from a to Z
sang nguyen
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
ASG
 
Java spring framework
Java spring frameworkJava spring framework
Java spring framework
Rajiv Gupta
 
Servlet to Spring: Internal Understanding
Servlet to Spring: Internal UnderstandingServlet to Spring: Internal Understanding
Servlet to Spring: Internal Understanding
Knoldus Inc.
 
Spring framework in depth
Spring framework in depthSpring framework in depth
Spring framework in depth
Vinay Kumar
 
Sprint Portlet MVC Seminar
Sprint Portlet MVC SeminarSprint Portlet MVC Seminar
Sprint Portlet MVC Seminar
John Lewis
 
Struts & spring framework issues
Struts & spring framework issuesStruts & spring framework issues
Struts & spring framework issues
Prashant Seth
 
Spring 3.x - Spring MVC - Advanced topics
Spring 3.x - Spring MVC - Advanced topicsSpring 3.x - Spring MVC - Advanced topics
Spring 3.x - Spring MVC - Advanced topics
Guy Nir
 
JDBC Connectivity Model
JDBC Connectivity ModelJDBC Connectivity Model
JDBC Connectivity Model
kunj desai
 
Introduction to Ibatis by Rohit
Introduction to Ibatis by RohitIntroduction to Ibatis by Rohit
Introduction to Ibatis by Rohit
Rohit Prabhakar
 
Jdbc architecture and driver types ppt
Jdbc architecture and driver types pptJdbc architecture and driver types ppt
Jdbc architecture and driver types ppt
kamal kotecha
 

Viewers also liked (7)

Build Cross-Platform Mobile Application with PhoneGap
Build Cross-Platform Mobile Application with PhoneGapBuild Cross-Platform Mobile Application with PhoneGap
Build Cross-Platform Mobile Application with PhoneGap
Allan Huang
 
Boilerpipe Integration And Improvement
Boilerpipe Integration And ImprovementBoilerpipe Integration And Improvement
Boilerpipe Integration And Improvement
Allan Huang
 
Weighted feed recommand
Weighted feed recommandWeighted feed recommand
Weighted feed recommand
Allan Huang
 
Phonegap facebook- plugin
Phonegap facebook- pluginPhonegap facebook- plugin
Phonegap facebook- plugin
Steve Gill
 
PhoneGap talk from Singapore
PhoneGap talk from SingaporePhoneGap talk from Singapore
PhoneGap talk from Singapore
Steve Gill
 
Phonegap facebook plugin - Seoul & Tokyo
Phonegap facebook plugin - Seoul & TokyoPhonegap facebook plugin - Seoul & Tokyo
Phonegap facebook plugin - Seoul & Tokyo
Steve Gill
 
PGDAY EU 2016 workshop - privacy and security
PGDAY EU 2016 workshop - privacy and securityPGDAY EU 2016 workshop - privacy and security
PGDAY EU 2016 workshop - privacy and security
Steve Gill
 
Build Cross-Platform Mobile Application with PhoneGap
Build Cross-Platform Mobile Application with PhoneGapBuild Cross-Platform Mobile Application with PhoneGap
Build Cross-Platform Mobile Application with PhoneGap
Allan Huang
 
Boilerpipe Integration And Improvement
Boilerpipe Integration And ImprovementBoilerpipe Integration And Improvement
Boilerpipe Integration And Improvement
Allan Huang
 
Weighted feed recommand
Weighted feed recommandWeighted feed recommand
Weighted feed recommand
Allan Huang
 
Phonegap facebook- plugin
Phonegap facebook- pluginPhonegap facebook- plugin
Phonegap facebook- plugin
Steve Gill
 
PhoneGap talk from Singapore
PhoneGap talk from SingaporePhoneGap talk from Singapore
PhoneGap talk from Singapore
Steve Gill
 
Phonegap facebook plugin - Seoul & Tokyo
Phonegap facebook plugin - Seoul & TokyoPhonegap facebook plugin - Seoul & Tokyo
Phonegap facebook plugin - Seoul & Tokyo
Steve Gill
 
PGDAY EU 2016 workshop - privacy and security
PGDAY EU 2016 workshop - privacy and securityPGDAY EU 2016 workshop - privacy and security
PGDAY EU 2016 workshop - privacy and security
Steve Gill
 

Similar to eSobi Website Multilayered Architecture (20)

EJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkEJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLink
Bill Lyons
 
Tu1 1 5l
Tu1 1 5lTu1 1 5l
Tu1 1 5l
shibli009
 
Java New Evolution
Java New EvolutionJava New Evolution
Java New Evolution
Allan Huang
 
Signal Framework
Signal FrameworkSignal Framework
Signal Framework
Aurora Softworks
 
Spring 2
Spring 2Spring 2
Spring 2
Aruvi Thottlan
 
Spring 1 day program
Spring 1 day programSpring 1 day program
Spring 1 day program
Mohit Kanwar
 
P20CSP105-AdvJavaProg.pptx
P20CSP105-AdvJavaProg.pptxP20CSP105-AdvJavaProg.pptx
P20CSP105-AdvJavaProg.pptx
DrTCVijayaraghavan
 
MarvelSoft SchoolAdmin Dev Framework
MarvelSoft SchoolAdmin Dev FrameworkMarvelSoft SchoolAdmin Dev Framework
MarvelSoft SchoolAdmin Dev Framework
Ranganath Shivaram
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014
Jagadish Prasath
 
Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.
suranisaunak
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts framework
s4al_com
 
Rajesh Ramasamy
Rajesh RamasamyRajesh Ramasamy
Rajesh Ramasamy
Rajesh Ramasamy
 
Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2
Mindsmapped Consulting
 
Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2
javatrainingonline
 
ADVANCED JAVA MODULE I & II.ppt
ADVANCED JAVA MODULE I & II.pptADVANCED JAVA MODULE I & II.ppt
ADVANCED JAVA MODULE I & II.ppt
rani marri
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
tola99
 
Java ee introduction
Java ee introductionJava ee introduction
Java ee introduction
Moumie Soulemane
 
Java EE 7 introduction
Java EE 7  introductionJava EE 7  introduction
Java EE 7 introduction
Moumie Soulemane
 
Complete java syllabus 7448062045 Yesdo Sddd
Complete java syllabus 7448062045 Yesdo SdddComplete java syllabus 7448062045 Yesdo Sddd
Complete java syllabus 7448062045 Yesdo Sddd
Yesdo Softindia Pvt Ltd
 
Spring ppt
Spring pptSpring ppt
Spring ppt
Mumbai Academisc
 
EJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkEJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLink
Bill Lyons
 
Java New Evolution
Java New EvolutionJava New Evolution
Java New Evolution
Allan Huang
 
Spring 1 day program
Spring 1 day programSpring 1 day program
Spring 1 day program
Mohit Kanwar
 
MarvelSoft SchoolAdmin Dev Framework
MarvelSoft SchoolAdmin Dev FrameworkMarvelSoft SchoolAdmin Dev Framework
MarvelSoft SchoolAdmin Dev Framework
Ranganath Shivaram
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014
Jagadish Prasath
 
Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.
suranisaunak
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts framework
s4al_com
 
Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2
javatrainingonline
 
ADVANCED JAVA MODULE I & II.ppt
ADVANCED JAVA MODULE I & II.pptADVANCED JAVA MODULE I & II.ppt
ADVANCED JAVA MODULE I & II.ppt
rani marri
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
tola99
 
Complete java syllabus 7448062045 Yesdo Sddd
Complete java syllabus 7448062045 Yesdo SdddComplete java syllabus 7448062045 Yesdo Sddd
Complete java syllabus 7448062045 Yesdo Sddd
Yesdo Softindia Pvt Ltd
 

More from Allan Huang (19)

Concurrency in Java
Concurrency in  JavaConcurrency in  Java
Concurrency in Java
Allan Huang
 
Build, logging, and unit test tools
Build, logging, and unit test toolsBuild, logging, and unit test tools
Build, logging, and unit test tools
Allan Huang
 
Drools
DroolsDrools
Drools
Allan Huang
 
Java JSON Parser Comparison
Java JSON Parser ComparisonJava JSON Parser Comparison
Java JSON Parser Comparison
Allan Huang
 
Netty 4-based RPC System Development
Netty 4-based RPC System DevelopmentNetty 4-based RPC System Development
Netty 4-based RPC System Development
Allan Huang
 
Tomcat New Evolution
Tomcat New EvolutionTomcat New Evolution
Tomcat New Evolution
Allan Huang
 
JQuery New Evolution
JQuery New EvolutionJQuery New Evolution
JQuery New Evolution
Allan Huang
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
Allan Huang
 
YQL Case Study
YQL Case StudyYQL Case Study
YQL Case Study
Allan Huang
 
HTML5 Multithreading
HTML5 MultithreadingHTML5 Multithreading
HTML5 Multithreading
Allan Huang
 
HTML5 Offline Web Application
HTML5 Offline Web ApplicationHTML5 Offline Web Application
HTML5 Offline Web Application
Allan Huang
 
HTML5 Data Storage
HTML5 Data StorageHTML5 Data Storage
HTML5 Data Storage
Allan Huang
 
Java Script Patterns
Java Script PatternsJava Script Patterns
Java Script Patterns
Allan Huang
 
Web Crawler
Web CrawlerWeb Crawler
Web Crawler
Allan Huang
 
eSobi Site Initiation
eSobi Site InitiationeSobi Site Initiation
eSobi Site Initiation
Allan Huang
 
Architecture of eSobi club based on J2EE
Architecture of eSobi club based on J2EEArchitecture of eSobi club based on J2EE
Architecture of eSobi club based on J2EE
Allan Huang
 
J2EE Performance Monitor (Profiler)
J2EE Performance Monitor (Profiler)J2EE Performance Monitor (Profiler)
J2EE Performance Monitor (Profiler)
Allan Huang
 
Search is not only search
Search is not only searchSearch is not only search
Search is not only search
Allan Huang
 
Issue tracking workflow in web development and maintenance cycle
Issue tracking workflow in web development and maintenance cycleIssue tracking workflow in web development and maintenance cycle
Issue tracking workflow in web development and maintenance cycle
Allan Huang
 
Concurrency in Java
Concurrency in  JavaConcurrency in  Java
Concurrency in Java
Allan Huang
 
Build, logging, and unit test tools
Build, logging, and unit test toolsBuild, logging, and unit test tools
Build, logging, and unit test tools
Allan Huang
 
Java JSON Parser Comparison
Java JSON Parser ComparisonJava JSON Parser Comparison
Java JSON Parser Comparison
Allan Huang
 
Netty 4-based RPC System Development
Netty 4-based RPC System DevelopmentNetty 4-based RPC System Development
Netty 4-based RPC System Development
Allan Huang
 
Tomcat New Evolution
Tomcat New EvolutionTomcat New Evolution
Tomcat New Evolution
Allan Huang
 
JQuery New Evolution
JQuery New EvolutionJQuery New Evolution
JQuery New Evolution
Allan Huang
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
Allan Huang
 
HTML5 Multithreading
HTML5 MultithreadingHTML5 Multithreading
HTML5 Multithreading
Allan Huang
 
HTML5 Offline Web Application
HTML5 Offline Web ApplicationHTML5 Offline Web Application
HTML5 Offline Web Application
Allan Huang
 
HTML5 Data Storage
HTML5 Data StorageHTML5 Data Storage
HTML5 Data Storage
Allan Huang
 
Java Script Patterns
Java Script PatternsJava Script Patterns
Java Script Patterns
Allan Huang
 
eSobi Site Initiation
eSobi Site InitiationeSobi Site Initiation
eSobi Site Initiation
Allan Huang
 
Architecture of eSobi club based on J2EE
Architecture of eSobi club based on J2EEArchitecture of eSobi club based on J2EE
Architecture of eSobi club based on J2EE
Allan Huang
 
J2EE Performance Monitor (Profiler)
J2EE Performance Monitor (Profiler)J2EE Performance Monitor (Profiler)
J2EE Performance Monitor (Profiler)
Allan Huang
 
Search is not only search
Search is not only searchSearch is not only search
Search is not only search
Allan Huang
 
Issue tracking workflow in web development and maintenance cycle
Issue tracking workflow in web development and maintenance cycleIssue tracking workflow in web development and maintenance cycle
Issue tracking workflow in web development and maintenance cycle
Allan Huang
 

Recently uploaded (20)

TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 

eSobi Website Multilayered Architecture

  • 2. Agenda  Java EE Web Technique  Multilayered Architecture  Presentation / Web Service Layer  Aspect Oriented Programming  AOP Terminology  Proxy Pattern  Dynamic Proxy  Inversion Of Control  Service Locator Layer  Business Logic Layer  Data Access Layer  Domain Object Layer  Utility Layer
  • 3. Java EE Web Technique  A tailored lightweight and multifunctional web platform for business operations of eSobi.  Refer some of 14 rules on the book High Performance Web Sites.  Design Presentation and Web Service Layer by referring MVC concept and structure of Struts 2  Design Business Logic Layer and Data Access Layer by referring AOP and IoC concept of Spring 2  Auto-setup all bean instances by using the extends and implements declarations to reduce the amount of configuration files.
  • 6. Presentation / Web Service Layer  Web Context Listener initializes/destroys needed resources firstly/lastly while web context is loaded/unloaded.  Resource Access Filter intercepts any HTTP requests, and handles/passes/rejects them, further forward them to the next handler/servlet.  The main goal of HTTP ETag Response Stream, HTTP Cache-Control Header and Compressed Response Stream reduce the amount or frequency of HTTP response transmission.
  • 7. Presentation / Web Service Layer  HTTP Request, HTTP Response and Servlet Context are wrapped in a Request Context is convenience to be passed to Controllers.  Page Action and it’s Controller handle HTTP requests and return an HTML page via Page Forward or Page Redirect.  AJAX Call and it’s Controller handle HTTP requests and return an JSON string that wrapped in AJAX Call Return and JSON Message.  Remote Command and It’s Controller handle HTTP requests and return an XML string in Remote Command Return and XML Message.
  • 8. Aspect Oriented Programming  AOP (Aspect Oriented Programming) that aims to increase Modularity by allowing the separation of Cross- Cutting Concerns.
  • 9. AOP Terminology  Join point  A point during the execution of a program, such as the execution of a method or the handling of an exception.  Advice  Action taken by an aspect at a particular join point. Different types of advice include "around," "before" and "after" advice.  Pointcut  A predicate that matches join points.  Weaving  linking aspects with other application types or objects to create an advised object. This can be done at compile time, load time, or at runtime.
  • 10. Proxy Pattern  A surrogate or placeholder for another object to control access to it.  Deferred Initialization  Acts as a "stand-in" for the actual implementation allowing it to be instantiated only when absolutely necessary.  Security  Verify that the user actually has the permission to execute the method.  Logging  Log every method invocation, providing valuable debugging information.  Performance Monitoring  Log each method invocation to a performance monitor allowing system administrators to see what parts of the system are potentially bogged down.
  • 11. Dynamic Proxy  Using standard Java SE Dynamic Proxies (since JDK1.3) for AOP proxies. This enables any interface (or set of interfaces) to be proxied.
  • 12. Inversion of Control  The main goal of IOC (Inversion of Control) is to remove dependencies of an application.  DI (Dependency Injection) is a subtype of IoC and is implemented by constructor injection, setter injection or method injection.
  • 13. Service Locator Layer  Singleton Service Bean Factory create all Service Bean instances at initiate time of web context and put them into it’s own pool. DAO Bean Factory is the same as above circumstances.  According to AOP, all bean instances are constructed by Java SE Reflection API and create dynamic implementations of interfaces at runtime by Java SE Dynamic Proxy API.
  • 14. Business Logic Layer  Service Bean must implement specific service interface that implements IGeneric Service Interface, and extends Abstract Generic Service.  Transaction Adviser is responsible for opening SQL connection, executing target method, committing result, and finally close SQL connection by Java SE Dynamic Proxy API.  Thread Local<Stack> of Transaction Adviser keeps track of each target method recursively via push and pop action per thread lifecycle.
  • 15. Data Access Layer  DAO Bean must implement specific DAO interface that implements IGeneric DAO Interface, and extends Abstract Generic DAO.  JDBC Utility is responsible for setting SQL Data Source at initiate time of web context and closing Data Source at destroy time of web context.  Thread Local<Connection> of JDBC Utility keeps track of concurrent connection per thread lifecycle.
  • 16. Domain Object Layer  Domain Object classes must extend Abstract Entity interface.  Each domain class has an unique ID attribute as primary key and its default equals and hashCode methods are overridden.  Relationships be expressed as Java List or Set structure among domain classes are constructed by according to E-R model.
  • 17. Utility Layer  Introduce well-known Apache Commons libraries that contain BeanUtils, Codec, Collections, Compress, DBCP, DbUtils, Email, FileUpload, IO, Lang, Logging, Net, Primitives, Proxy, and Log4J, Xerces, etc.  Develop Utility classes (framework) that are independence on Java EE web container based on above libraries.
  • 18. Reference  Spring Gossip: AOP 觀念與術語  Aspect Oriented Programming with Spring  Java Reflection - Dynamic Proxies  Apache Commons Proxy
  • 19. Q&A