Upload
others
View
12
Download
0
Embed Size (px)
Citation preview
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
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 ?”
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
4
7
Simplified J2EE Platform Today: “The Whole is Much Greater than the Sum of its Parts”
8
J2EE and Application Logic Tiers
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
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
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
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
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
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
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
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
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
14
27
Practical Use of Application Server Services
28
An Abstract View: J2EE Patterns
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
16
31
Adding Support for B2B Transactions to EISs
32
J2EE Connector Architecture Diagram
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”
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
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
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.
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.
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
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
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
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
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)
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
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
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.
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
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
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
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
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
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
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
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
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”
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
40
79
Implementation Diagram
80
Derivative Architecture Patterns
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
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”
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
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
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
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
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
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
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
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
51
101
EAI Provides Data Transformations
102
Efficiency: Binary Objects on the Wire
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
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
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
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