פתרונות J2EE וטכנולוגיות Oracle Mr. Liran Zelkha, Chief Architect [email_address]
From client-server to N-tier
Middltier application needs
J2EE application architecture
The Web user interface
The Business tier
Where to put the business logic (Database/Application)
The Way ahead: Services & SOA
Around since the mid-80s.
RAD development (VB, Developer/2000, PowerBuilder).
Installations and maintenance (TCO)
Do not fit the “web paradigm”
More server oriented.
Application can be divided to tiers, each responsible for different aspect of the application:
Our requirements have increased
Where is our RAD?
Middletier Application Needs
All we were used to:
And some more:
Built on top of Java.
Large developers base.
Specification developed and maintained by JCP.
Check www.jcp.org for list of participants.
J2EE Current Status
Oracle, IBM, BEA and Jboss largest players.
Many enterprise software vendors use J2EE – SAP, Oracle, IBM, PeopleSoft.
Large number of customers.
Wide experience and acceptance.
J2EE Tiers Client machine Firewall / Load Balancer Web Server Web Server EJB Container EJB Container Database Web Container Web Container Browser HTML GIF JPEG HTML GIF JPEG Servlet JSP Servlet JSP EJB JDBC JCA JMS EJB JDBC JCA JMS
J2EE Scenario Client machine Web Server EJB Container Database Web Container Catalog .jsp HTTPSession Datasource Connection BookEJB Logo.gif Connection Connection http://www.j2eedemo.com/catalog.jsp 1 2 3 4 5 6 7 8
The Web Tier
Use JSP for web development.
HTML pages with Java code embedded inside (much like ASP).
Many supporting technologies:
Web Tier Ease Of Use
Frameworks for web development consolidated into JSF.
Pre defined components (trees, lists, templates) that can be purchased or downloaded for free.
Standard supported by all J2EE vendors.
Tools offer WYSIWYG and RAD.
Demo: Web Tier Ease Of Use
The Business Tier
Component based development.
Services provided by application server:
Components for business logic (session EJBs), database access (entity EJBs)
Support for remote calls and web services
Application server provides run time services – transactions, security, more.
JMS – standard API for all messaging platforms.
JCA – buy or develop connectors for legacy systems.
JMX – easy to develop management components.
Demo: Business Tier
J2EE Benefits – Cross platform
Can work on any hardware/OS – Linux, Windows, UNIX and Mainframe.
Can work with any vendor – commercial (Oracle, IBM) or open source (Jboss, Apache)
Porting is easy.
J2EE Benefits – RAD
Setting up server is as easy as opening a ZIP file (Oracle, Jboss).
Development can be done using RAD tools (Jdeveloper, Eclipse).
Deployment is a mouse click away.
J2EE Benefits - Experience
Tons of books, articles, forums.
Design patterns and blue prints for easy development.
Many online and classic courses.
The Middle Tier future
Welcome to the world of:
Aspect Oriented Programming
Components with HTTP access.
Can be used from any language.
Thoroughly supported in J2EE.
Can pass through firewalls.
Service Oriented Architecture.
Software architecture composed of standalone components.
AOP - Attribute Oriented Programming
AOP – Aspect Oriented Programming
BPEL – Business Process Execution Language
AOP - Attribute Oriented Programming
J2EE components require meta-data:
Web.xml, ejb-jar.xml, application.xml
External is an advantage?!?
Xdoclet can auto-create meta-data files
XP – eXtreme Programming
AOP - Aspect Oriented Programming
Many view J2EE containers as AOP containers
Write business logic
Server provides aspects of transactions,security, performance, etc.
Web Services Meet Business Processes Web Service 1 Web Service 2 Web Service 3 Web Service 4 Web Service 5 Web Service n
Example Problem Space Client PO Service Credit Service Inventory Service Consolidate Results Purchase Order Credit Check Reserve Inventory Credit Response Inventory Response Invoice
J2EE has been here a while and it is here to stay.
Easy to use – unlike a couple of years ago.
Easy to teach – allot of experience going around.
Stable and inexpensive – competition brings the best in vendors.