Java Components for
Server Development
Java Server Pages
Servlets
Enterprise JavaBeans
Mark Hapner
Sr. Staff Engineer
Java Software
Agenda
• Component overview
• Service model overview
• Demo
• JSP/Servlet walk-through
• Session EJB walk-through
• Entity EJB walk-though (if time)
The Presenters
• We are all architects/implementers of
Java Server APIs
• James Davidson
• Jim Driscoll
• Tony Ng
• Mark Hapner
Java Server Components
• Implement a service
– Locate and present content
– Compose and execute transactions
• Shield clients from enterprise
• Shield developers from plumbing
• Are hosted by a ‘server’
• Run in the middle-tier
• Standard packaging and deployment
• Open Architecture
Clients
• Web Browsers
– HTML
– XML
– Java (Plug-in + Applet + XML)
• Others
– Java program
– VB program
– Office app
– Notes client
Client Protocols
• HTTP and HTTPS
• IIOP
• DCOM
• JRMP
Middle-tier Service
• Abstracts
• Aggregates
• Transforms
• Sequences
• Authenticates and Authorizes
• Communicates
• Presents
Middle-tier Server
• Provides concurrent service to multiple
clients
• Manages sessions and transactions
• Pools resources
• Integrates security
• Handles remote access
– Clients
– Back office (DBMS, CICS, ERP, etc)
Java Server Components
• Java Server Pages
– Scripting HTML and XML with Java
– Dynamically compiled to servlet
• Servlets
– Sophisticated web server extension
• Enterprise JavaBeans
– Compose transactions
– Access enterprise resources
Java Server Pages
• Flexible scripting for generating HTML
and XML
• Runs on all web servers that support
servlets (is there one that doesn’t?)
• Create, find and call EJBs
• Automatically install Java Plug-in for
applets that require it
JSP Status
• Introduced at JavaOne 98
• Version 0.92 in public review
• Version 1.0 available 1Q99
Servlets
• Java objects which extend a web server
• Comparable to Netscape’s NSAPI,
Microsoft’s ISAPI, or Apache Modules
• Platform independent
• Server independent
Servlet Status
• Introduced 1995
• Version 2.1 Spec available now
• Version 2.1 JSDK (ServletRunner) early
access 4Q98, FCS 1Q99
EJB
• Single-user programming model
• Easily composed
• No plumbing - just business logic
• A ‘stored procedure’ on steroids
EJB Models
• Session EJB
– A task or tool
– Part of the client
– Non-persistent
• Entity EJB
– A business entity shared by clients
– Persistent
Session EJB
• Stateless
– No state between methods
– All instances are equivalent
– Created and deleted by server
• Stateful
– State held across methods and transactions
– Created, used and deleted by a client
– Lifetime bounded by timeout
Entity EJB
• Client creates and deletes
• Server activates, loads and stores
• No ‘extra’ server state
• Bean managed
– Developer writes load and store methods
• Container Managed
– Server provides load and store methods
EJB Status
• Version 1.0 introduced JavaOne 98
• Update planned for 1Q99
• Broad industry support
• Several EJB server products available
Service Examples
• HTTP Services (HTML and XML)
• XML/Java enables ‘model’ services
• Service controls transactions
• Servers are bought not written
• EJB components are coarse grained
Basic Service
Transactional Service
Shared Business Entities
Wombat Securities Demo