55
1 1 Extreme Java G22.3033-007 Session 11 - Main Theme Java Enterprise Web and Application Enabling (Part III) Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences 2 Agenda Summary of Previous Session Enterprise JavaBeans (EJBs) J2EE Connector Architecture Practical Survey of Mainstream J2EE App. Servers Web Services Developer Pack Enterprise Application Integration (EAI) and Business to Business Integration (B2Bi) J2EE Blueprint Programs Class Project & Assignment #4c

g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

1

1

Extreme Java G22.3033-007

Session 11 - Main ThemeJava Enterprise Web and Application Enabling (Part III)

Dr. Jean-Claude Franchitti

New York UniversityComputer Science Department

Courant Institute of Mathematical Sciences

2

Agenda

Summary of Previous SessionEnterprise JavaBeans (EJBs)J2EE Connector ArchitecturePractical Survey of Mainstream J2EE App. ServersWeb Services Developer PackEnterprise Application Integration (EAI) and Business to Business Integration (B2Bi)J2EE Blueprint ProgramsClass Project & Assignment #4c

Page 2: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

2

3

Summary of Previous Session

Advanced Java Server Pages and Java ServletsJava Server FacesJakarta Struts and Other Related FrameworksBuilding Business Logic with J2EEPatterns of Enterprise Application ArchitecturesXML Support for MDA TechnologyJava and XML Tools for CLDC ApplicationsClass Project & Assignment #4b

4

Enterprise JavaBeans (EJBs)http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/

Also See Session 10 Main Theme Part IV on:“Building Business Logic with J2EE”

Session 11 Sub-Topic 2 Presentation on:“Using Enterprise JavaBeans”

and Session 11 (historical) Handouts on:“The Enterprise JavaBeans (EJB) Server Component Model”

“Technical Introduction to Enterprise JavaBeans”“Deploying and EJB Application”

“Introduction to Enterprise JavaBeans”“Building a Stateless Session Bean”

“Using Enterprise JavaBeans”“EJB Application Servers”

“Enterprise JavaBeans FAQs”“I EJB Ri ht f M ?”

Page 3: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

3

5

J2EE Initial Platform:Components + Container + Services

“The Whole is Greater than the Sum of its Parts”

6

What is a Component Model?

Component Model Subsumes:Component as a packaged software object with a standardized interface and reusable in multiple applications

SpecificationProgramming ModelDeployment ModelAdministration Model

Component architectureHow components interact with each other and with software tools

Page 4: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

4

7

Simplified J2EE Platform Today: “The Whole is Much Greater than the Sum of its Parts”

8

J2EE and Application Logic Tiers

Page 5: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

5

9

J2EE Server and Containershttp://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Overview3.html

10

J2EE: A Complete Computing Environment

Platform SpecificationLists required elements of the platformLists policies to follow for a valid implementation

Reference Implementation (+ Sun ONE App. Server)Semantically correct prototype to test against

Compatibility Test SuiteAPI-level compatibility, component-level tests, end-to-end compatibility

Application Programming Model: java.sun.com/j2ee

Page 6: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

6

11

Enterprise JavaBeans Container

12

Enterprise JavaBeans and Services

Application ServerContainer

Enterprise JavaBean

ServicesLifecycle

Transaction

Security

Load Balancing

Error Handling

Persistence*

* In the EJB 1.0 specification support for persistence services isoptional. In the EJB 1.1 specification it is mandatory.

Threading

Page 7: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

7

13

Sample DemoBean Application Architecture

14

J2EE: Components

Enterprise JavaBeansServer-side solutions can be built without regards for the database, transaction server, or application they run on

ServletsRun on vast majority of web servers

JavaServer PagesDynamic content leverages off the full power of Java

Page 8: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

8

15

The Three Cs: Components, Containers, Connectors

16

J2EE: Containers

Containers provide high-performance, scalable environments for J2EE-enabled serversJ2EE-enabled servers support EJB-based components, servlets, and JSP-based pages

Page 9: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

9

17

J2EE: Connectors

Connectors allow J2EE-based solution to preserve, protect, and leverage off of existing enterprise investments

18

J2EE: Unifying the Three Cs

Single platformStandard platform-independent technologyApplications built with components can be run on any J2EE server, and are able to talk to enterprise-class systems that exist today

Page 10: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

10

19

Creating an EJB ComponentExample:try {

// get the JNDI naming contextContext initialCtx = new InitialContext ();

// use the context to lookup the home interfaceCheckingHome home =

(CheckingHome) initialCtx.lookup ("checking");

// use the home interface to create the enterprise BeanChecking server = home.create ();

// invoke business methods on the beanserver.createAccount (1234, "Athul", 1000671.54d);

} catch (Exception ex) {ex.printStackTrace ();

}

20

Enterprise JavaBeans (EJBs)

Enterprise Application PlatformsSupport Component Modeling with EJBsSupport Serving of EJBsSee Session 11 Handouts on EJBsSee Session 11 Sub-Topic 2 Presentation on Using Enterprise JavaBeans

Newer Application Server Technology Focused on “Model-Centric” Application Development

Page 11: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

11

21

Entity Beans in EJB Application ServersRepresent sets of data (all or part of a database table or a view)Functionality limited to creation, update, and deletion of dataManage persistence of dataMaintained in a cacheCan be container or bean managed

Container-managed beans are under the control of an application server for persistence and transaction managementContainer-managed beans are restricted in the type and complexity of data they can manageBean-managed beans rely on user provided code for persistence and transaction management

22

Entity Beans Related Components

EJB remote interfaceEJB remote implementation EJB home interface EJB keyEJB finder helper interface Deployment descriptor Database scripts

Page 12: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

12

23

Session Beans in EJB Application Servers

Handle the business logic of EJB applicationsMay use multiple entity beans to gather application data

24

Session and Entity Beans

Application Server

ATMSession

Bean

AccountEntity Bean

B

Transfer $100 fromAccount A to Account B

Subtract

$100

Add $100

Database

Update Account

Update Account

AccountEntity Bean

A

Page 13: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

13

25

EJB Physical Partioning

WebServer

WebServer

WebServer

EJBServer

EJBServer

EJBServer

WebBrowser

WebBrowser

WebBrowser

Database

EJBs communicate to thedatabase through Java DatabaseConnectivity (JDBC). Theapplication server pools andmanages database connectionsfor maximum efficiency.

The application server distributesload across all available EJBservers and provides fail-over ifone of the EJB servers goesdown.

A Domain Name System (DNS)server routes incoming browserrequests evenly across a pool ofweb servers. This technique isreferred to as DNS round-robining.The application server providesfail-over if one of the web serversgoes down.

26

EJB Component/Programming Model

Page 14: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

14

27

Practical Use of Application Server Services

28

An Abstract View: J2EE Patterns

Page 15: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

15

29

Part II

J2EE Connector Architecture

30

J2EE Connector Architecturehttp://java.sun.com/j2ee/connector/

Problem:Integration of Heterogeneous Enterprise Information Systems (EISs)Sample EISs: ERP, mainframe transaction processing, database systems, and legacy applications not written in the Java programming language.

Solution:J2EE Connector Architecture One Resource Adapter for each Type of EIS is pluggable into a J2EE Application Server

Page 16: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

16

31

Adding Support for B2B Transactions to EISs

32

J2EE Connector Architecture Diagram

Page 17: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

17

33

J2EE Connector Architecture Components

System ContractsConnection management contracts (1.0)Transaction management contracts (1.0)Security contract (1.0)Transaction and Message Inflow contracts (1.5)

Lifecycle and Work management contracts (1.5)

Resource AdapterSystem-level software driver used to connect to an EISProvides transaction, security, and connection poolingImplements the EIS-side of the system-level contracts

Common Client Interface (CCI)Intended for EAI and Enterprise tools vendors

34

Part III

Practical Survey of MainstreamJ2EE/CORBA 3 Application Servers

Special Focus on WAS 5.0

Also see Session 8 Main Theme Part V on

“Distributed Object Computing Today and NG”and Session 11 Handouts on:

“Application Servers Comparison”“WebSphere by IBM”

Page 18: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

18

35

Java-Based and J2EEApplication Servers

Third-Party Vendorshttp://www.app-serv.com/contend.html

See:http://www.mgm-edv.de/ejbsig/ejbservers.htmlhttp://www.javaworld.com/javaworld/tools/jw-tools-appserver.html

http://www.appserver-zone.com/

http://www.devx.com/devxpress/gurl.asp?i=1X1095373X7360

WebSphere Architecture and Programming Model:http://www.research.ibm.com/journal/sj/373/bayeh.html

36

Commercial J2EE Environments

WebLogic 8.0WebSphere 5.0JBoss 3.06Borland AppServeriPlanet.com iPlanetSybase EAServerOracle 9iIONA iPortalXoology ConcertoAligo M-1Advanced Network Systems WebIx

Page 19: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

19

37

CORBA 3 EnvironmentsSee:

http://ditec.um.es/~dsevilla/ccm/Implementations (mostly open source):

GOAL Group OpenCCM - http://corbaweb.lifl.fr/OpenCCM/ ExoLab.org OpenCCM - http://corbaweb.lifl.fr/OpenCCM/iCMG K2-CCM (C++) - K2-CCMMICO/E (Eiffel ORB) - MicoCCM pageJavaCCM - http://dog.team.free.fr/details_javaccm.htmlTAO Group - http://www.cs.wustl.edu/~schmidt/TAO.htmlIONA iPortal (no CCM) - http://www.iona.com/products/ip_ipas_home.htmOther companies: Eurescom/GMD/Humboldt U, Computational Physics/Photon Research, Sprint, ONE, Siemens, Sourceforge MI-3 (“Mission Impossible 3”) and CIF projects (http://sourceforge.net/projects/cif/), etc.

See Session 3 Sub-Topic 1 Presentation on “CORBA 3”

38

WebSphere Application Server Overview

Page 20: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

20

39

WebSphere TerminologyManaged Process or Server

Each application/JMS server running in its own JVM

Node AgentManages servers running on a single physical machine (i.e., a node)

Deployment ManagerManages multiples nodes in a distributed topology

CellNetwork of multiple nodes in a single logical administration domain

40

WAS 5.0 OfferingsWebSphere Application Server – Express

RAD Environment for Servlets and JSP pagesJ2EE 1.3 and Web Services SubsetEmphasizes Ease of Use, Small Footprint, and Pre-Canned Applications

WASJ2EE 1.3 (EJB 2.0 & Servlet 2.3) and Web Services SupportReplacement for WAS 4.0 – Single-Server Edition

WAS Network Deployment (WAS-ND)Manages Multiple Application Servers & Handles Clustered EnvironmentsReplacement for WAS Advanced EditionIncludes a Basic WAS with Deployment Features

Distributed System Management, Clustering, Basic Workload Management, Monitoring, etc.

Page 21: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

21

41

WAS 5.0 Offerings (cont.)WAS Extended Deployment (WAS-XD)

Extended Version of WAS Network DeploymentCross-Domain Failure Bypass, Dynamic Load Balancing, etc.Optimizes Performance, Availability, and Scalability

Includes Scalability and Manageability FeaturesWAS Enterprise (WAS-EE): WAS-ND + WAS-XD + PMEs

High-End Package that includes WebSphere MQIncludes Programming Model Extensions (API and Associated Run-Time & Mgmt. Features)

Dynamic EJBQL, Access Intent (e.g., Optimistic/Pessimistic Concurrency Control), LE, BP Choreography, Extended Messaging/Transactions, CORBA C++ SDK, etc.Activity Service (JSR-95), WorkArea (JSR-149), Internationalization Service (JSR-150)

Replacement of WAS Enterprise Edition 4.0WAS Application Server for z/OS

Special Packaging Optimized for z/OS Environment

42

WebSphere ProductsWebSphere PortalWebSphere CommerceWebSphere Host on Demand and Host PublisherWebSphere Translation ServerWebSphere Voice ProductsWebSphere EveryPlaceTranscoding Publisheretc.

Page 22: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

22

43

WebSphere Management ToolsAssembly Tools

Application Assembly Tool (AAT)Eclipse based AAT (future)WebSphere Studio Family of Products

Enterprise Application Mgmt ToolsBrowser based Admin Console

http://localhost:9090/adminAttached either to the App Server or the CellStruts-based implementation

Command line toolsWSAdmin

Java APIsAll admin tools may modify configuration documents (i.e., resources.xml, and variables.xml, etc.) located under <was_root>/config

44

WebSphere DirectionsPlatform

Reach and User ExperienceBusiness IntegrationFoundation and Tools

Product ObjectivesPlatform for Enterprise ComputingPlatform for InnovationHelp Developers Focus on Building ApplicationsEstablish/Maintain Standards LeadershipFlexible Set of Product Configuration Options

PrinciplesPlatform Treated as a Development PrincipleIBM Leverages Core CompetenciesPlatform Ensures RobustnessWebSphere Used to Build Some of the Components of WebSphere

VisionJMXWeb ServicesSupport for new PMEs and Enterprise Architecture Patterns

Page 23: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

23

45

WebSphere in Production Deployments

46

J2EE PackagingJ2EE Application .EAR file

Application DDEJB Module .JAR file

Enterprise BeanEJB DDSchema Map, Schema Attributes, Table Creation, IBM Extensions, IBM Bindings

Web Module .WAR fileServletJSPHTML, GIF, etc.Web DDIBM Bindings, IBM Extensions

Client Module .JAR fileClient ClassClient DDIBM Bindings

IBM Bindings, IBM Extensions

Page 24: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

24

47

WebSphere Packaging Extensions

Sample WebSphere OptionsWeb Application ReloadingFile Serving and Servlet Invoker by ClassnameTransaction Isolation Attributes

Extensions Stored in ibm-type-ext.xmiType is ejb or web

Defining IBM ExtensionsUse Extension Editor in WSADUse the AAT Extensions Tab of the Component’s Property Sheet

48

WebSphere Packaging BindingsBindings are Used to Specify how Local Names or resources (e.g., ejb-ref) are tied into a J2EE runtimeBindings stored in ibm-type-bnd.xmi

Type is “application”, “ejb”, or “web”Defining IBM Bindings

Use Extension Editor in WSADUse the AAT when defining the resource-ref or ejb-ref

Page 25: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

25

49

Application Assembly Tool (AAT)Used to:

Build .war and .ear filesConfigure application deployment properties and initial set of bindingsConfigure application/server binding into .ear

Can use WSAD as an alternativeBindings have to be entered during application installation

50

WebSphere Programming Model

See: ftp://ftp.software.ibm.com/software/websphere/partners/TheVisionForWASV5AndBeyond.pdf

Page 26: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

26

51

WAS e-Business Computing ModelsMulti-Tier Distributed Computing

Separation of presentation, business and data logicRuntime component management architecture

Object identity, transaction & session management, security, versioning, clustering, workload balancing and failover, caching, etc.

Component SharingOO Modeling Compatibility

Web-Based ComputingPresentation logic relocated in the middle-tierUses a Tier-0 fixed-function device (i.e., Web browser)Other Tier-1/2 devices are supported as wellImplements Edge-Computing via Servlets/JSPs

52

WAS e-Business Computing ModelsIntegrated Enterprise Computing

Copes with Legacy ExtensionsIntegration of pre-existing applications

SAP, CICS, Oracle, IMS, Windows, DB2, Tibco, PeopleSoft, Domino, MQSeries

Supports “incremental business process re-engineering”Based on Java 2 Connectors and JMS

Point-to-point asynchronous messaging, request/response messaging, publish-subscribe messaging

Moving towards Business Process Management (BPM)

Page 27: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

27

53

WAS e-Business Computing ModelsServices-Oriented Computing

New approach to B2BiXML message encoding architecture + HTTP as a communication transportWeb services are about how to access a business service, while J2EE is about how to implement that business service

54

WAS Integrated Computing ModelJ2EE Component-Based Programming modelsMultiple Presentation Device TypesWeb ServicesMessage-Oriented ProgrammingBPM

Used to script the flow of process activities implemented as J2EE components

Legacy Integration via Java 2 Connectors and Higher-Level Adapters

Page 28: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

28

55

Application and Component Design Patterns

See http://www.ibm.com/developerworks/patternsThick-Client Presentation LogicWeb-Client Presentation LogicModel-View ControllerComponentized Business LogicEncapsulation of Persistence and Data LogicAdapter-Based IntegrationRequest-Response MessagingPublish-Subscribe MessagingWeb ServicesWorkflow

56

WebSphere Development ModelCreate a Design Model for your ApplicationDevelop Application Components and Organize them in the Web Application and Module ArchivesDefine Deployment Policies for Components

Transactional semantics, security assumptions, extended deployment policies, etc.

Assemble Component JARs into WARs and EJB Modules, and create a J2EE EAR

May use application assembly tool, and/or an XML editor to edit the J2EE XML descriptor files)Can also use WSAD

Generate Deployment Code for ComponentsIncludes the creation of EJB properties mappings to the database schema

Install Application to the WebSphere RuntimeDirectly on application server instance, or through Cell Manager in a clustered environment

Page 29: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

29

57

WebSphere Development RolesComponent Developer

Responsible for codifying business and presentation logic in servlets, JSPs, and EJBsMay be split in sub-roles

Application AssemblerResponsible for assembling components into an EAR that includes all modules, a manifest, and deployment descriptor information (deployment policies)Must understand overall functional objectiveWorks with the DBA to implement/optimize the database mapping

Application DeployerResponsible for installing the application into the runtime, picking and configuring the application server, and resolving dependencies

System AdministratorResponsible for configuring the application server networkAddresses failures and performance bottlenecksEvaluates log files, test performance metrics, and monitors system utilizationPerforms capacity, integrity, and security management

58

WebSphere Development RolesAuthor

Responsible for assembling static and dynamic content

Web Application and EJB Container ProviderWAS

Operations Centers AdministratorsBusiness Managersetc.

Page 30: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

30

59

Programming FeaturesJ2SE 1.3 APIs

AppletsAWT/SwingJavaBeansI/OLanguage Classes

J2SE ExtensionsJCEJSSEPKCS

J2EEServlet 2.3JSP 1.2EJB 2.0JDBC 2.0JTA 1.0JMS 1.0.3J2EE Connector Architecture 1.0JAAS 1.0JAXP 1.1JavaMail 1.2JAF 1.0

Web ServicesWebSphere Additional FunctionsWebSphere Application Server Extension APIs

60

J2SE 1.3 RestrictionsJ2SE 1.3 APIs

No particular WebSphere support for appletsCannot drive AWT/Swing UIs from hosted applications

J2EE only permits AWT/Swing use of the clipboard, Swing events, and showing windows in a J2EE client containerThese features are not allowed in applet, Web, or EJB containers without enabling privileged code

I/O operations may be restricted by file permissionsAccess to system files or WebSphere runtime files is restricted

System-related runtime functions used to control ClassLoader, Security Manager, Threads/Thread Groups, Socket Factories, etc. are restrictedProcess-related thread functions should not be used

Can be supported by enabling privileged code or using Async Beans (PME) to make WebSphere aware of the threads

Should not manipulate the garbage collector through referencesShould not create in-bound socket listeners in hosted codeShould not construct an RMI server in the WASAvoid the direct use of J2SE security classesApplication clients, applets, servlets, and EJBs can only read properties

Page 31: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

31

61

J2EE Extensions

com.ibm.websphere.servlet.cachecom.ibm.websphere.servlet.errorcom.ibm.websphere.servlet.eventcom.ibm.websphere.servlet.filtercom.ibm.websphere.servlet.request

Allows stream manipulation and introduces a servlet request proxy

com.ibm.websphere.servlet.responseIncludes support for generating and storing responses

com.ibm.websphere.servlet.sessionSession management across clusters

62

Web Services SupportInvocation Programming Interfaces

JAX-RPCWeb Services Invocation Framework (WSIF)

Handles SOAP over HTTP/JMSWeb Services Security

SOAP-SECWeb Services Gateway

Act as Web Services ProxiesUseful to integrate J2EE and .Net services

UDDI

Page 32: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

32

63

Additional FunctionsStruts and Struts Tag LibraryExtension APIs

Activity SessionsApplication ProfilesAsynchronous Beans and SchedulerBusiness Rules BeansChoreographyContainer Managed MessagingDynamic EJB QueryInternationalization ExtensionsJTA Synchronization NotificationLast Agent OptimizationStaff ServicesStartup BeansC++ ORB

64

WebSphere Programming Tools

Page 33: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

33

65

Eclipse Platform

Integrated Development Platform for Building Diverse Applications

http://www.eclipse.orgUses Standard Widget Toolkit (SWT) to look and feel like a native applicationCommon definition for resources, projects, and preferencesExtensibility via Eclipse plug-insBasic architecture includes a small Eclipse core, and various plugins (basic UI framework, core resource support, version control management, java development tools, etc.)

WebSphere Studio is Built on the Eclipse 2.0 Platform

66

WebSphere StudioSite Developer

Intended for professional developers of dynamic Web applications and sitesSupports servlets, JSPs, XML , and Web Services toolsIncludes integrated WAS test environment and deployment automation tools

Application DeveloperSite developer + advanced Web services and EJBsSupports application execution tracing, profiling and performance analysis

Application Developer Integration EditionApplication Developer + full SOA development environment for business and EAIIncludes workflow visual builder and full choreography support

Enterprise DeveloperApplication Developer Integration Edition + EIS creation tools

Page 34: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

34

67

Best Practices for Server-Side Applications Development

68

MVC Review

ModelOnly one modelImplements business logic using JavaBeans/EJBs

ViewOne or many window(s) into the modelProvides presentation/user manipulation via JSPs

ControllerOne or more Parses and directs user requests via servlets

Page 35: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

35

69

Architecture Design Principles

Layer the ApplicationUse JSPs for Presentation OnlyUse Servlets as Controllers and to Maintain the Application StateFacilitate Evolving Architectural RequirementsFacilitate Incorporation of New TechnologiesFacilitate Support for Different Types of ClientsReduce Need for Future Application Maintenance

70

User Request Processing via Servlets

Servlet gets client requestServlet determines which program elements are required to carry out the specified requestJavaBeans or EJBs perform the business logic operations for the request and encapsulate the resultsServlet selects a presentation template (JSP) to deliver the content back to the clientJSP generates a specific response by accessing the content available via the JavaBeans

Page 36: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

36

71

JSP Design Considerations

Use Indirect Programming ModelJSP is invoked indirectly by a controller servlet

There should be no control behavior within the JSP

The amount of Java code within the JSP should be minimizedJSP is only there to provide a response to the client

72

Model Layer

Should be Split into Domain Model Layer

Corresponds to the model in the MVC architecture

Infrastructure ModelData mapping layer (persistence) that provides the mapping between domain objects and the data sourcesData source layer obtains and saves information in a data store

The decoupling allows reuse of domain objects across applications

Page 37: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

37

73

Controller Flow Models

Action Based ProcessingOne servlet for each client requestA subclass of the base Action class is created for each type of requestUsed by Web Frameworks

Struts relies on a single servlet for each client request, and action subclasses

Design enhances code testability, but it is difficult to write actions for applications with a complex state manager

State Based Model AlternativeCurrent State represented by a class implementing a common interface that defines each action/request as a methodSingle HttpSession object is used to maintain the application stateController obtains the current state object and invokes a corresponding action method on that state objectController updates the application’s state object based on the result of the action

74

Exception HandlingSupports Graceful Recovery from Unexpected Application ErrorsGlobal Handling

Handling is global for the entire applicationWebSphere InstallableError HandlerErrorReporter Servlet for debuggingError-page that routes errors on any named JSPs

Local HandlingHandling is specific to the action performedExpected errors are handled by specific JSPsUnexpected errors are handled by Servlet

Page 38: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

38

75

Controller Design PatternsCommand Pattern

Command object corresponds to a business logic task (i.e., action)Command implemented as serialized objects

State PatternRobustly handles complex state-based application behavior

Memento PatternBehavioral pattern used to take a snapshot of a portion of an object’s state so that the object can be restored laterMay be used in Web applications to handle the browser back button

76

Part IV

Web Services Developer Pack

Also see Session 7 Main Theme Part III and IV on“.Net” and “Web- and Application-Enabling Facilities”,

Session 8 Main Theme Part VI on“Next Generation Component-Based Engineering”

“Distributed Object Computing Today and NG”and Session 11 Handouts on:

“Application Servers Comparison”

“WebSphere by IBM”

Page 39: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

39

77

XML and J2EE(release chronology)

Java XML PackAll in one XML technology for Javae.g., SAX, DOM, XSLT, SOAP, UDDI, ebXML, and WSDL

Java XML Pack Summer 02 ReleaseJava API for XML Messaging (JAXM 1.1)Java API for XML Processing (JAXP 1.2)Java API for XML Registries (JAXR 1.0_01) Java API for XML-based RPC (JAX-RPC 1.0) SOAP with Attachments API for Java (SAAJ 1.1)

Java Web Services Developer Pack 1.1

78

Web Services Stack

Page 40: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

40

79

Implementation Diagram

80

Derivative Architecture Patterns

Page 41: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

41

81

Web Services Latest Specifications(http://msdn.microsoft.com/webservices/ , http://www.ibm.com/webservices/,

http://dev2dev.bea.com/techtrack/standards.jsp)

Baseline WS SpecificationsSOAP, UDDI, WSDL

BPEL4WSBusiness Process Execution Language for WS

Global WS SpecificationsWS-CoordinationWS-InspectionWS-ReferralWS-RoutingWS-SecurityWS-PolicyWS-Transaction

82

.Net Applications Support Technologies/Services

Page 42: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

42

83

IBM WebSphere SDK for Web Services V. 5.0

Services-Oriented ComputingNew approach to B2BiXML message encoding architecture + HTTP as a communication transportWeb services are about how to access a business service, while J2EE is about how to implement that business service

Web Services with WSAD Demonstration Tutorials:

Build and Test

Deploy and Publish

84

Part V

BPM, B2Bi, and EAI:Business Process Management,

Enterprise Application Integration,and

Business to Business Integration

Also See Session 11 Sub-Topic 3 Slides and Handout on:“Enterprise Application Integration”

Page 43: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

43

85

WAS Integrated Enterprise Computing

Copes with Legacy ExtensionsIntegration of pre-existing applications

SAP, CICS, Oracle, IMS, Windows, DB2, Tibco, PeopleSoft, Domino, MQSeries

Supports “incremental business process re-engineering”Based on Java 2 Connectors and JMS

Point-to-point asynchronous messaging, request/response messaging, publish-subscribe messaging

Moving towards Business Process Management (BPM)

86

BEA WebLogic Application Server

Page 44: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

44

87

Architectural IDEshttp://www.io-software.com,

ArcStyler Core Modules

Rational Rose Programming IDE

MDA Cartridges

The Unified Process

PatternRefinementAssistant

UMLRefinementAssistant

Build,Deploy & Test

Support

BEA WebLogic

IBM WAS NT, z/OS

J2EE/EJB, .NET

Borland, JBoss

Oracle, IONA

BusinessObject

Modeler

IDS ARIS

MDA-EngineEngine

with Meta IDE

Open MDA/UML/XML Repository

Optional integrated Tools

Std. MDA Projections

Architect Edition adds support

forcustom infrastructure

MDA-Cartridge IDE & MDA Engine

88

Enterprise Application Integration (EAI)XML Applications Categories:

XML Server-Side POP FrameworksUser Interface and Presentation Related Contexts

XML EAI (MOM) FrameworksSimple Data Representation and Exchange

Web ServicesMessage-oriented ComputingTowards “Loosely Connected” Component-Based Architectures

See article athttp://java.sun.com/features/2001/02/xmlj2ee.p.html

See Session 11 SubTopic 3 Presentation on EAISee Session 11 Handout on EAI

Page 45: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

45

89

XML & DBMSs ComparisonBoth separate data from rendition/presentation infoSimilar languages

DBMSs: Forms and Reporting, DDL, DQL, DCLXML: XSL, XQL, and processing instructions

No DML in XMLXML is paired with a scripting or programming language

Validation capabilitiesDBMSs: datatyping, relationship constraintsXML: data type validity and semantic consistency checks

XML can handle data too complex for some databasesXML interchangeable form of data vs. multidatabases

90

MOM Application Development Tools

Serializing Java objects into XML using reflection

Sims Computing lightweight XML messaging framework (based on JMS)xmlBlaster Message Oriented Middleware project

MOM platform that uses XML for the message meta-data and quality of service informationMessages can be filtered using XPath expressions which match against the XML header document

Developing MOM applications using the SAX/DOM APIs

Page 46: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

46

91

B2Bi: B2B commerce and Enterprise Application Integration (EAI)

B2Bi is based on the transformation and routing of XML documentsB2Bi patterns:

Direct Application IntegrationData ExchangeClosed Process IntegrationOpen Process Integration

Existing Frameworks:WebMethods B2Bi EAI frameworkMQSI (MQSeries Integrator)

See STP/T+1 in Sub-Topic 1/2 Presentation

92

B2Bi Direct Application IntegrationArchitecture

Page 47: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

47

93

B2Bi Direct Application IntegrationRequirements

Ability to interact directly with application APIsIntegration brokers with built-in support for adapters, transformations, and asynchronous content0based routingSame Integration Broker on both endsSecure transport, component authentification, and user authorizationsFederated security control

94

Data Exchange B2BiArchitecture

Page 48: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

48

95

Data Exchange B2BiRequirements

Translation of data native to an application into a common document format, and transmission via a gatewayNo constraints on the presence of Integration BrokersB2B transactions enabled via a common data exchange format

96

Closed Process Integration B2BiArchitecture

Page 49: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

49

97

Closed Process Integration B2BiRequirements

Principal participant responsible for managing processesOther participants are secondary, and do not have visibility into the entire processRequires the introduction of business process integration (BPI) services

B2Bi product offerings are beginning to incorporate BPI as an essential componentIn this case, B2Bi enables the integration of logical business process elements expressed as activities rather than data

98

Closed Process Integration B2BiArchitecture

Page 50: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

50

99

Closed Process Integration B2BiRequirements

Introduces the notion of shared processes rather than operating from a centralized master process manager modelEach participant is actively managing business processes within its domainThe BPI layer must support fine-grained control of managed processes

100

EAI Frameworks and XMLXML complements EAI technology

Powerful meta languageSimplicitySeparation of content and presentation formatCommon open standard

EAI Frameworks must address the limitations of XML

Limited Semantics InterpretationLack of data transformation facilitiesInefficiencies of text-based documentsAbsence of component-based routing

Page 51: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

51

101

EAI Provides Data Transformations

102

Efficiency: Binary Objects on the Wire

Page 52: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

52

103

Part VI

J2EE Blueprint Programs

104

Experimenting with J2EE Blueprint Programs

• Prerequisites• WAS 5.0 Installation and Basic Administration• Application Assembly & Deployment with WAS 5.0

• IBM Specific Applications• ILS• Plants-By-WebSphere Application

• J2EE Applications• PetStore Application

• http://www.javaworld.com/javaworld/jw-09-2001/jw-0928-rup.html

• Java Adventure Builder Applications• Project Framework

Page 53: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

53

105

Part VII

Conclusion

106

SummaryThe EJB Component Model Integrates Provides Infrastructure Support for Business Logic in the J2EE FrameworkThe J2EE Connector Architecture Allows B2Bi Support on top of Enterprise Information SystemsThe WebSphere WAS Family of Technologies and Tools Provide Complete Support for J2EE Technologies TodaySun Provides a Web Services Developer Pack and IBM has Developed a Web Services SDK to Support Web Services Application DevelopmentMost Application Vendors Provide Integrated Support for BPM, B2Bi, EAI, LE, and EIIJ2EE Blueprint Programs are Implemented on Top of Mainstream Application Servers for Experimentation Purpose

Page 54: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

54

107

Architecture Frameworks

CORBA & Applets (e.g., VisiBroker, and ORBacus)RMI-JRMP and RMI-IIOPWeb Servers (e.g., Apache), Servlet & JSP Engines (e.g., Tomcat,JRun, WebSphere Client and Web Containers)J2EE Application Servers (e.g., WebSphere, WebLogic, JBoss)J2ME CLDC MIDP/PADP configuration and profilesXML Parsers (e.g., XercesJ)XML server-side POP frameworks (e.g., Cocoon 2/XSP)XML EAI frameworks (e.g., WebMethods), B2Bi, BPM, LE, and EIIIDEs (e.g., JBuilder), and JavaBeans Development Kit (e.g., BDK)

108

AssignmentReadings

J2EE: Part III Chap. 12 and Appendix CExpert One-on-One: Chap. 1, 6, 10, 11, 14Selected readings mentioned in class or referenced in the handouts Handouts posted on the course web site

Assignment #4c: (submit report and implementation archive)Submit project increment 3 focused on the J2EE EJB container development. Recommendation: Modify ongoing version of Java-based application developed in assignment #3a to operate as an Enterprise JavaBeans application.Extra Credit:

Implement a multi-tier version of your framework-based application using Web Services. While using the same specifications as for Assignment #3a, implement a new version of your application using a “Delegate” EJB Architecture using BEA’s WebLogic Server. Details regarding a proposed architecture are available at: http://www.weblogic.com/docs51/classdocs/corba.html#code.

Project Framework SetupJ2EE IDE: IBM WSAD, WAS, DB2Java Plug-in, Java Web Start, Apache’s Xerces/Xalan J2SE 1.3.1, 1.4.0 or 1.4.1 (SDK)IDE: Eclipse, NetBeans, Sun ONE Studio, JBuilder, Visual Age, Visual Café, Codewarrior, WebGain Studio, Oracle JDeveloper, etc.Editors: JCreator, UltraEdit, etc.Visibroker 4.5.1 or BES 5.2 RMI-IIOP / Java IDL

Page 55: g22 3033 006 c111 - nyu.edu · Each application/JMS server running in its own JVM Node Agent Manages servers running on a single physical machine (i.e., a node) Deployment Manager

55

109

EJB/CORBA Interoperability(http://www.weblogic.com/docs51/classdocs/corba.html#code and

http://www.javaworld.com/javaworld/jw-12-1999/jw-12-iiop_p.html)

110

Next Session:Java Enterprise Web and Application Enabling

(Part III)

Summary of Previous SessionApplications of Java to Database TechnologyDatabase Technology ReviewBasic and Advanced JDBC FeaturesReadingsClass Project & Assignment #5a