g22 3033 007 c111 - nyu.edu · 3 5 J2EE Platform: The Whole is Greater than the Sum of its Parts 6...
Transcript of g22 3033 007 c111 - nyu.edu · 3 5 J2EE Platform: The Whole is Greater than the Sum of its Parts 6...
1
1
Extreme JavaG22.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) and J2EEJ2EE OMA ServicesJ2EE Application ServersCORBA 3 EnvironmentsWeb ServicesEnterprise Application Integration (EAI) andBusiness to Business Integration (B2Bi)Class Project & Assignment #4c
2
3
Summary of Previous Session
Java Web-Enabling TechnologyTraditional Web Programming and JavaWeb and Proxy Servers
Java and XMLJava and XML Tools for CLDC ApplicationsJava Servlets and Java Server PagesJava-Based Application Server TechnologyClass Project & Assignment #4b
4
Part I
Enterprise JavaBeans (EJBs) and J2EE Also See Session 11 Sub-Topic 2 Presentation on:
“Using Enterprise JavaBeans”and Session 11 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”
“Is EJB Right for Me?”
3
5
J2EE Platform:The Whole is Greater than the Sum of its Parts
6
J2EE: A Complete Computing Environment
Platform SpecificationLists required elements of the platformLists policies to follow for a valid implementation
Reference ImplementationSemantically correct prototype to test against
Compatibility Test SuiteAPI-level compatibility, component-level tests,end-to-end compatibility
Application Programming Model: java.sun.com/j2ee
4
7
Enterprise JavaBeans Container
8
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
5
9
Sample DemoBean Application Architecture
10
J2EE: Components
Enterprise JavaBeansServer-side solutions can be built without regardsfor the database, transaction server, or applicationthey run on
ServletsRun on vast majority of web servers
JavaServer PagesDynamic content leverages off the full power ofJava
6
11
The Three Cs:Components, Containers, Connectors
12
J2EE: Containers
Containers provide high-performance, scalableenvironments for J2EE-enabled serversJ2EE-enabled servers support EJB-basedcomponents, servlets, and JSP-based pages
7
13
J2EE: Connectors
Connectors allow J2EE-based solution to preserve,protect, and leverage off of existing enterpriseinvestments
14
J2EE: Unifying the Three Cs
Single platformStandard platform-independent technologyApplications built with components can be run onany J2EE server, and are able to talk to enterprise-class systems that exist today
8
15
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 ();
}
16
Enterprise JavaBeans (EJBs)
Enterprise Application PlatformsComponent Modeling with EJBsServing EJBsSee Session 11 Handouts on EJBsSee Session 11 Sub-Topic 2 Presentation on UsingEnterprise JavaBeans
Towards “Model-Centric” Application Development
9
17
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 applicationserver for persistence and transaction managementContainer-managed beans are restricted in the type andcomplexity of data they can manageBean-managed beans rely on user provided code for persistenceand transaction management
18
Session Beansin EJB Application Servers
Handle the business logic of EJB applicationsMay use multiple entity beans to gather application data
10
19
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
20
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.
11
21
EJB Component/Programming Model
22
Sample Java Application Server Services
12
23
Part II
J2EE OMA Services
Also See Session 8 Handouts on:“JNDI”
“Jini - The Universal Network?”“Jini Connection Technology”
“Understanding Java Messaging and JMS”“JTS - Demarcated Transactions Support”
and Session 9 Main Theme Slides on:“Security in J2EE Web-Enabled Enterprise Applications”
and Session 11 Sub-Topic 1 Presentation on”“Java 2 Security Summarized”
24
J2EE OMA ServicesActivation Services
RMI Activation FrameworkJavaBeans Activation Framework
Naming and Directory ServiceJNDI and JNDI SPIs for CosNaming, RMI, NIS, NDS, LDAP
Trading ServiceJini
JTA and JTSMessaging Services
JMSJavaMail
Security ServicePersistence Service
13
25
Java Messaging Service
Handles both Synchronous and Asynchronous MessagingTopic / point-to-point messagingQueue / publish-and-subscribe messaging
Common Way for Java Programs to Create / Send /Receive / Read Enterprise MessagesUsed in Conjunction with MOM Products
e.g., TIBCO, MQSeries
Different Message TypesTextMessages, MapMessages, ObjectMessages, etc.
26
Java Messaging Service (JMS)(connection, session, and messaging facilities)
14
27
JMS Synchronous Subscriber Example// Lookup admin objects on default host
InitialContext ic = null;
ic = new InitialContext ();
ic.bind ();
// Lookup connection factory and Topic names
TopicConnectionFactory tcf =
(TopicConnectionFactory) ic.lookup ("primaryTCF");
Topic topic = (Topic)ic.lookup("primaryTopic");
// Dispose of InitialContext Resources
ic.dispose();
// Create and start a topic connection
TopicConnection topicConnection = tcf.createTopicConnection();
topicConnection.start ();
System.out.println("Creating topic session: not transacted, auto ack");
28
JMS Synchronous Subscriber Example(continued)
// Create topic session on the connection just created
TopicSession topicSession =
topicConnection.createTopicSession(false,1);
// Create subscriber
TopicSubscriber topicSubscriber =
topicSession.createSubscriber(topic);
// Listen for messages synchronously (blocking receive)
while (true) {
TextMessage textmsg2 = (TextMessage)topicSubscriber.receive();
System.out.println("Received : " + textmsg2.getText() );
}
15
29
JMS v.s. RMI
RMILimited client connectionsPoor performance (no resource pooling, no store-and-forward, noload balancing)No guaranteed messaging and securityStatic client/servers with location dependent code
JMSSpecification / vendors address inherent RMI limitationsJMS may be implemented on top of RMI(java.rmi.server.RMISocketFactory) or sockets (java.net.Socket)Socket-based implementations are better throughput
30
JMS v.s. JavaSpacesJavaSpaces
Distributed persistence and data exchange mechanism for JavaJavaSpace data is stored in entries (typed grouping of fields)Client API allows writing, lookup, and removal of entriesJava programs/applets can use JavaSpaces to store their stateAPI includes support leasing, transactions, and eventsRuns on top of RMI and provides an alternative to JMSOnly supports transient objects on a small scale
JMSSupports large scale transient objectsDesigned to support access beyond firewallsSupports high performance and response times
16
31
JMS v.s. InfoBus
InfoBusSolution for interconnecting Java components (e.g., Lotus’ KonaApplets) or arbitrary Java classesVirtual traffic cop for components on a web pageTags applets by content that can be exchanged among componentsJavaBeans components registered can exchange data with appletsProvides data producer, consumer, and controller modulesDesigned for components working together in the same JVM
JMSSupports communication across components that go beyond asingle JVM
32
JMS v.s. JSDT
Java Shared Data ToolkitLibrary that allows the addition of collaborative features to Java applets andapplicationsSupports the creation of network centric applications
e.g., shared whiteboards, chat environments, remote presentations, sharedsimulations, data distribution for enhanced group data workflow, etc.
Supports many simultaneous users and uses raw IP delivery (highlycollaborative, and high bandwidth services)Designed to work across the Internet (via HTTP) and firewalls
JMSNon real-timeCan use raw IP for delivery or higher-level protocols (SMTP, RMI, Javasockets)
17
33
When to Use JMS
Use JMS in environments where CORBA has not beenembraced and where Java applications needs to transactasynchronouslyUse RMI for synchronous messaging where performance isnot an issueAlthough inefficient, JMS can be used across the firewallvia HTTP tunneling (same as RMI/no data push fromserver to clients)Use to isolate programmers from low-level transport APIswhile they focus on delivering enterprise-wide messaging
34
Java Transaction Service (JTS)EJB model implements two-phase commit, transaction contextpropagation, and distributed transactionsTransaction is an “ACID” unit of work
Atomic, Consistent, Isolated, DurableEJB transaction policies are defined at deployment time
Bean-demarcated transactionsClient-demarcated transactions
Transactional scopeScope includes any bean that participate in the bean method
Transaction scope is traced by looking at the thread of execution,and is also determined by transaction attributes
18
35
Transaction Attributes
Attributes may apply to a whole bean or individual methodsSix attributes are supported by container to specify the way itmanages transaction:
TX_NOT_SUPPORTEDTX_SUPPORTSTX_REQUIREDTX_REQUIRES_NEWTX_MANDATORYTX_BEAN_MANAGED
36
TX_NOT_SUPPORTED
Container invokes bean methods without a transaction contextWhen bean method is invoked from within a transaction context,the container suspends that transaction context
19
37
TX_SUPPORTSContainer includes the bean or method within the transaction scopein which it is invokedIf the bean method is invoked without a transaction context, thecontainer invokes the bean without a transaction contextWhen bean method is invoked from within a transaction context,the bean and everything it accesses becomes part of the transaction
38
TX_REQUIREDContainers invokes the bean within a transaction scopeWhen bean method is invoked from within a transaction context,the container invokes the bean from within that transaction contextWhen bean method is invoked without a transaction context, thecontainer creates a new transaction context and passes it to anybeans that are used by this bean method
20
39
TX_REQUIRES_NEW
Container always invokes the bean method with a new transactioncontext regardless of existing transaction contextsNew transaction context is passed to all beans or resources used bythe bean method
40
TX_MANDATORYContainer always invokes the bean method within the transactioncontext associated with the clientjavax.jts.TransactionRequired Exception is raised if the beanmethod is invoked without a transaction contextTransaction context is passed to any beans used by the beanmethod
21
41
TX_BEAN_MANAGEDContainer does not manage the bean class’ transactional contextThe bean class uses JTA’s javax.jtx.UserTransaction to explicitelymanage transaction boundariesIf one method uses this attribute, all methods must managetransaction on their ownMore efficient for EJBs that provide stateless services
42
SQL Transaction Isolation LevelsDetermines how isolated transactions are for read purposesIsolation levels are defined in the ANSI/ISO SQL92 standardsPrevents the following between concurrently executingtransactions:
Dirty reads: transaction reading uncommitted data from anothertransactionNon repeatable reads: transaction rereading data previouslyread and finding that another commited transaction hasmodified or deleted the dataPhantom reads: transaction executing a query and finding outthat another commited transaction inserted addition rows in theset of records returned by the query
22
43
EJB Isolation LevelsLevels mapped in JDBC to static variables defined injava.sql.Connection interfaceAll methods invoked in the same transaction must have sameisolation levelTRANSACTION_READ_UNCOMMITTED
Transaction can read uncommitted dataTRANSACTION_READ_COMMITTED
Transaction cannot read uncommitted dataTRANSACTION REPEATABLE READ
Transaction cannot change data read by another transactionMore constrained than “read committed”
TRANSACTION_SERIALIZABLETransaction has exclusive read/update privileges via data locking
44
EJB Isolation Levels(continued)
TX_SERIALIZABLE (continued)Does to data what the synchronized keyword does to methodsOther transactions can neither write nor read the same dataMost restrictive to guarantee the highest level of data integritySlower as simple reads must wait in lineEJBs need to be fine-tuned for performance by leveraging thelevel of reads that will occur on the database, and its handling oflocking and choice of isolation level
23
45
Client-Demarcated TransactionsJTS specification is based on CORBA OTS 1.1
Implements a Java transaction manager that sits between anapplication and one or more transaction-capable resourcemanagers (e.g., database servers, messaging systems, etc.)
JTS includes the JTA APIJTA API can be used to group operations into logical transactionsPackages: org.omg.CosTransactions and org.omg.CosPortability
http://java.sun.com/products/jts/javadoc/org/omg/CosTransactions/package-summary.html
JTA services:Transactional operations in client applicationsTransactional operations in app. servers (on behalf of clients)Global transaction management in a Java transaction manager (tocoordinate multiple resource managers)
46
JTA Usage (http://java.sun.com/jta)EJBs use JTA’s high-level transaction manager interface
javax.transaction.UserTransaction interface is exposed to EJBprogrammers (required by EJB spec.) to communicate with thetransaction manager and control transaction boundariesImportant methods:
public void begin() - nested transaction support up to TMpublic void commit() - may throw RollbackExceptionpublic int getStatus()public void rollback() - remove Transaction/thread associationpublic void setRollbackOnly() - used to veto a transaction explicitelypublic void setTransactionTimeout()
EJB server uses JTA’s high-level transaction manager interface and astandard Java mapping of the X/Open XA protocol(javax.transaction.xa.package)
24
47
Getting Transaction AccessAll methods must have the TX_BEAN_MANAGED attributeBean methods can access transaction service viagetUserTransaction() in javax.ejb.EJBContext interface (parentinterface for SessionContext and EntityContext)public void doTransaction(String customerName, String
password,int age) throws MyException{try{UserTransaction trans=sessionctx.
ctx.getUserTransaction().begin();Context ctx = new InitialContext();TranstestHome home = (TranstestHome)ctx.lookup("ejb.TranstestHome");Transtest bean = home.create();bean.putUser(”xyz","word");bean.putAge(”xyz",10);trans.commit();}catch(Exception e){
trans.rollback();throw new MyException("an exception occurred" +e);}}
48
Getting Transaction Access(continued)
JTA allows exposure of the UserTransaction object via JNDIApproach compromises portability as other EJB servers may notsupport this approachContext ctx = new InitialContext();
UserTransaction utx =
(UserTransaction)ctx.lookup("ajndiname");
utx.begin(); // do work utx.commit();
In the case of entity beans and stateless session beans:Transaction managed via UserTransaction must begin and end inthe same methodReason is that this type of bean instances are shared across manyclients via instance pooling and instance swapping on the server
25
49
Getting Transaction Access(continued)
Stateful beans:Allow UserTransaction object to span multiple method as there is only oneinstance associated with a client and it maintains conversational stateBean/transaction state is consistent even if the container may internallyactivate/passivate to leverage server resourcespublic class MyStatefulBean implements SessionBean {
public SessionContext ctx;
public void setSessionContext(SessionContext ctx){
this.ctx=ctx;}
public void method1(){
ctx.getUserTransaction().begin();
// do some work}
public void method2(){
// do some more work }
public void method3(){
// do yet some more work and finally commit
ctx.getUserTransaction().commit();}
50
Getting Transaction Access(continued)
Stateful beans (continued)Repeated calls to getUserTransaction() return a reference to the sameUserTransaction object.UserTransaction.getStatus() may be called to check the UserTransaction stateTransaction state between method calls may be cached and database updatespostponed to improve performancejavax.ejb.SessionSynchronization allows the server to inform a stateful sessionbean of the various stages in the transaction by invoking callback methods
afterBegin():notifies bean that a new transaction has started (invoked priorto the delegation of business methods to the instance)afterCompletion(): notifies bean that transaction has completed (should beused to reset instance variables)beforeCompletion(): notifies bean that transaction is about to be commited
Client-demarcated transactions across methods should be avoided as they areoverly complex and may lock up resources
26
51
Exception Handling and TransactionsException handling depends on the type of exception, isolation level, andtransactional attribute of the bean methodAny exception thrown outside the transaction scope causes a rollbackExample involving two stateless session beans (MiddleBean/TranstestBean)
52
Exception Handling and Transactions(continued)
Stateless beans deployment scenarios for the example suggested in theprevious slide:
27
53
Exception Handling and Transactions(continued)
Illustrated explanation of the three possible scenarios that result fromthrowing a deliberately planted exception as per the example suggested:
54
Exception Handling and Transactions(continued)
Example Case 1:Transaction context is propagated to TranstestBeanWhen exception is thrown in second bean, it falls within the transaction context andpropagates upContainer traps the exception in the first bean and rolls back the transaction
Example Case 2:Second bean does not participate in the transaction, and the transaction context is notpropagated to itException thrown falls outside the transaction context and is detected by thecontainer that rolls back the transactionThere is no way to undo any changes made by the second bean
Example Case 3:The second bean has a new transaction context for each methodThe transaction of the exception-throwing method is rolled backThe exception moves up and the container rolls back the initial transactionSecond method executes successfully in its own transaction
28
55
Exception Handling and Transactions(continued)
Exception handling guidelines:If an exception is meant to signify that the method cannot completesuccessfully, it should not be caughtIf an exception is caught, the method should try to correct the problemand continueIn order for the transaction to be rolled back, a method must throw anexception and propagate out of itApplication exception will not cause rollback if they are thrown andcaught within the transactional scopeRuntime or unchecked exceptions always cause a transaction to rollbackregardless of the transaction attribute or transactional scope
56
Exception Handling and Transactions(continued)
Unilateral Decisions:Transaction manager allows certain heuristic/speculative decisions basedon the state of participating resources in a transaction and the underlyingtwo-phase commit protocolDecisions occur when one of the resources in the transaction unilaterallydecides to commit or rollback the transaction (without TM permission)Resulting exceptions caused by breaking a transaction atomicity:
javax.transaction.HeuristicCommitExceptionRollback requested but all updates were committed instead
javax.transaction.Heuristic.MixedExceptionSome updates were committed and others were rolled back
javax.transaction.HeuristicRollbackExceptionAll relevant updates were rolled back
29
57
Jini’s Service-Based Architecture
58
Jini’s Relationship to Other Java Services
30
59
Part III
J2EE Application Servers
Also See Session 11 Handouts on:“Application Servers Comparison”
“WebSphere by IBM”
60
Java-Based and J2EEApplication Servers
Third-Party Vendorshttp://www.app-serv.com/contend.html
See:http://www.mgm-edv.de/ejbsig/ejbservers.html http://www.javaworld.com/javaworld/tools/jw-tools-appserver.htmlhttp://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
31
61
JBoss.org Jboss 2.4.4(J2EE Support)
See:www.jboss.orghttp://www.jboss.org/documentation/HTML/index.html
J2EE Specifications SupportEJB 1.1 (partial 2.0), JSP 1.1, Servlets 2.2, JNDI 1.0,JDBC 1.2/2.0, JavaMail / JAF, JMS 1.0.1, JTA 1.0/JTS,JMX 1.0, JAAS 1.0
RMI 1.0 SupportIIOPHTTP
62
JBoss.org Jboss 2.4.4(differentiators)
Component ArchitectureBasic EJB Container (low memory/disk space requirements)Java Management Extension (JMX) InfrastructurePlug and Play Services: JBossMQ (JMS), JBossMX JavaMail),JBossTX (JTS/JTA), JBossSX (JAAS), JBossCX (JCAconnectivity), JBossCMP
Unique FeaturesBuilt-in SQL database server (Cloudscape not required)Hot deploy, Runtime generated stubs/skeletons objects(distributed invocation enablers)
See References:http://www.jboss.org/testimonials.jsp
32
63
JBoss.org JBoss JMX Infrastructure(Version 2.4.4 for JVM 1.3+)
^TomCat Servlet Container
Jetty Web Server/Servlet Container
64
JBoss.org Jboss 2.4.4(security)
EJB 1.1 security model and custom security via security proxy layerEJB 1.1 declarative security via JAAS LoginModules and Subjects
Business methods do not contain any security related logic
<method-permission> <role-name>employee</role-name>
<method>
<ejb-name>EmployeeService</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
EJB 1.1 Custom security APIjava.security.Principal getCallerPrincipal()boolean isCallerInRole(java.lang.String roleName)
33
65
JBoss.org Jboss 2.4.4(standard ejb-jar.xml security elements)
66
JBoss.org Jboss 2.4.4(database connections)
Resource adapter architecture:Resource adapter (ConnectionFactory)JBoss (ConnectionManager)Resource adapter (ManagedConnectionFactory)ManagedConnection
Connections possible via :Vendor supplied resource adapter (InstantDB included)JDBC drivers wrapped into a JCA resource adapter
Minerva pools (multiple pools per data source)BMP, and CMP support (via JAWS O/R mapper)
34
67
JBoss.org Jboss 2.4.4(other features)
ManagementRemote monitoring and administration
JVM and Platform CertificationJDK 1.3 on Win 95/98/NT/2000, Solaris, Linux, etc.
Tools SupportJBuilder, Visual Age, and Forte
Enterprise Assurance FeaturesLow memory/disk space needs, security, performance
Application Support and Proprietary ExtensionsJbossServer, JMX Infrastructure, JBossMQ, JBossMX, JBossTX,JBossSX, JBossCX, JBossCMP
68
BEA WebLogic 6.1(J2EE Support)
EJB 2.0, Servlet 2.3, JSP 1.2, JNDI, JDBC, JMS, JTA/JTSWeb Services (SOAP and WSDL support)J2EE Connector Architecture 1.0XML Support:
JAXP 1.1, SAX 2.0, DOM Level 2, W3C Schemas
RMI 1.0 SupportIIOPHTTPT3 (rich sockets)
Multiplexed, bi-directional, asynchronousOne socket per thread
35
69
BEA WebLogic 6.1(differentiators)
Unique FeaturesJMS Performance Enhancements
Optional asynchronous I/ODeployment descriptor editing utilities
Tuxedo IntegrationOracle optimizationsEJB caching improvementsetc.
See References:http://www.beasys.com/products/weblogic/server/index.shtml
70
BEA WebLogic Application Server 6.1
36
71
BEA WebLogic 6.1(Security)
Secure Socket LayerRSA EncryptionX.509 digital certificatesACL down to the method level by users/groupsSecurity realms
Can import information from otherauthorization/authentication systems into the ACL
Firewall tunneling via HTTP and HTTPS tunnelingSecurity audit and logging interfaces
72
BEA WebLogic 6.1(Data Stores)
RDBMS support via JDBCOODBs (e.g., Versant, ODI)Object relational mapping tools
(e.g., WebGain’s TOPLink)Cache accelerators:
TimesTen’s Front-Tier
37
73
BEA WebLogic 6.1 Database Connectivity
74
BEA WebLogic 6.1(Supported Client Types)
Thin ClientsWeb Clients (e.g., HTML, WML)
Fat ClientsProgrammatic Clients (e.g., Java applets, Javastandalone applications, COM clients)Use XML/RMI to communicate with server
Client AdministrationZero Administration Client (ZAC)
38
75
BEA WebLogic 6.1(Management)
Swing-based ConsoleMonitoring/Update of Applications and ClustersViewing of Detailed Execution Information
Servlets, EJBs, JMS queues/topicsThird Party Management Framework Support via SNMP
76
BEA WebLogic 6.1(JVM and Platform Certification)
PlatformsLinuxIBM OS/390Sun SolarisNT and Windows 2000
Certified JVMs listed on the BEA Web Site
39
77
BEA WebLogic 6.1(Tools Support)
IBM VisualAge for JavaKLGroup JprobeWebGain Studio
Visual Café Enterprise SuiteMacroMedia DreamWeaverTendril Structure BuilderTOPLink O/R Mapping Tool
78
BEA WebLogic 6.1(Enterprise Assurance Features)
PerformanceHigh Performance HTTP Web ServerPlugins: Netscape (NSAPI), IIS (ISAPI), ApacheSocket Handling via interrupts (performance pack)Clustering (load balancing, automatic failover)
ReliabilityScalability
40
79
BEA WebLogic 6.1(Application Support and Proprietary Extensions)
Common logs, instrumentation, configuration, mgmt, etc.dbKona and htmlKona (OO interface to HTML)The WorkSpace (thread-safe hash table)Scheduling (define actions or triggers)File I/O (seamless manipulation of remote files)CGI Support (to support migration of first generation apps)Connection Filtering (block/allow connections fromclients)
80
IBM WebSphere Application Server (WAS) 4.0(J2EE Support)
J2EE Specifications SupportEJB 1.1, JSP 1.1, Servlet 2.2, Servlet Extensions, JNDI, JDBC,JMS, JTA/JTSJ2EE Web application (.war) interface with Tivoli Policy DirectorJava 2 Connectivity (J2C) and J2EE-based connectors support(mySAP, PeopleSoft, CICS, IMS, Oracle, J.D. Edwards, etc.
RMI 1.0 SupportIIOPHTTP
Requirements: 384MB (NT/2000) of memory, 180 MB ofdisk space, 500MHz processor or faster
41
81
IBM WebSphere Application Server (WAS) 4.0(differentiators)
Performance:Connection pooling, and dynamic EJB reloadingPerformance monitoring interface (PMI) APIsPerformance tuning wizards, and log analyzers
Unique Features:Java-based “silent” installXML parse XML4J V3.1.1Websphere (cached) JNDI naming (com.ibm.websphere.naming)Interoperability between Web Services and J2EE (Lotus Domino, WS Commerce Suite,WS B2B integrator, MQSeries, WS Everyplace Suite, WS Business Components,VisualAge for Java and WS StudioApplication and migration tools (logging, tracing, debugging, deployment/assembly)
See References:http://www-4.ibm.com/software/webservers/appserv/http://www-4.ibm.com/software/webservers/studio/
82
IBM WebSphere Application Server (WAS) 4.0(http://www.research.ibm.com/journal/sj/373/bayeh.html)
42
83
IBM WebSphere Application Server (WAS) 4.0(HTTP server clustering)
84
IBM WebSphere Application Server (WAS) 4.0(servlet engine)
43
85
IBM WebSphere Application Server (WAS) 4.0(JavaServer subsystem)
86
IBM WebSphere Application Server (WAS) 4.0
44
87
IBM WebSphere Application Server (WAS) 4.0(features - slide 1 of 2)
SecurityJ2EE roles-based authorizationHardware crypto accelerator and smart cards
Data StoresSequelLink JDBC drivers, Oracle, Microsoft SQLServer, Informix, Sybase, DB2 (integrated)
Supported Client TypesWeb clientsProgrammatic clientsWeb Services clients
88
IBM WebSphere Application Server (WAS) 4.0(features slide 2 of 2)
JVM and Platform CertificationJDK 1.3 across OS platformsWindows NT/2000, Solaris, AIX, HP-UX, Linux, OS/390
Tools SupportWebSphere Studio 4.0
Enterprise Assurance FeaturesPerformance, reliability, scalability
Application Support and Proprietary ExtensionsJMS-XA/MQSeries, TXSeries, Java/C++, CORBA, COM+
45
89
Other Commercial J2EE Environments
Borland AppServeriPlanet.com iPlanetSybase EAServerOracle 9iIONA iPortalXoology ConcertoAligo M-1Advanced Network Systems WebIx
90
Part IV
CORBA 3 Environments
46
91
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, ComputationalPhysics/Photon Research, Sprint, ONE, Siemens, Sourceforge MI-3 (“MissionImpossible 3”) and CIF projects (http://sourceforge.net/projects/cif/), etc.
See Session 3 Sub-Topic 1 Presentation on “CORBA 3”
92
Generic CORBA 3 Platform
47
93
Part V
Web Services
94
Content, Discovery, Universal access, andIntelligent Software Agents
UDDI: Universal Description, Discovery, and IntegrationIndustry-wide effort to bring a common standard for business-to-business(B2B) integrationSet of standard interfaces for accessing a database of web servicesSee UDDI Browser at http://www.soapclient.com/uddisearch.htmljUDDI (pronounced "Judy") is an open source Java-based implementation ofa UDDI registryAlso see
http://www.sun.com/software/xml/developers/uddi/http://www-3.ibm.com/services/uddi/index.htmlhttp://uddi.microsoft.com/default.aspxhttp://www.oasis-open.org/cover/uddi.htmlhttp://www.itpapers.com/cgi/SubcatIT.pl?scid=436
Intelligent Software Agents: ATLAS, Aglets, etc.
48
95
XML-Based e-Services Protocols andArchitectures
XML-RPC and Peer-to-Peer Computinghttp://xml.coverpages.org/xml-rpc.html
Simple Object Application Protocol (SOAP)http://soap.develop.com/xmlrpc/
Universal Description, Discovery, and Integration (UDDI)Web Service Definition Language (WSDL)
http://www.w3.org/TR/wsdl
Pervasive devicesResource Description Framework (RDF)
Platform for Internet Content Selection (PICS)Platform for Privacy Preferences (P3P)Channel Definition Format (CDF)Rich Site Summary (RSS)Blocks Extensible Exchange Protocol (BXXP)
96
XML-Based e-Services Protocols andArchitectures (continued)
XML Protocol (XMLP): XML-Based MessagingSystems
Standardized application to application XML messaging (viaHTTP, and MQSeries)
XML and User Identification/SecurityXML and Databases
XML and JDBCXML Extensions and Tools for Oracle, Informix, IBM DB2, andMicrosoft SQL Server
Transaction Authority Markup Language (XAML)Coordinated processing of transaction-supporting web servicesbetween internal fulfillment services and external services
49
97
XML-Based e-Services Protocols andArchitectures (continued)
Sun’s Open Net Environment (ONE)HP’s NetAction/e-speak platformOracle’s Dynamic Services platformMicrosoft .NET platformIBM WebSphere Architecture (WSA)platform
98
Microsoft .NET PlatformSmart Devices + Windows XP + Web Services
http://www.microsoft.com/netFirst set of Microsoft Web Services
http://www.microsoft.com/net/hailstorm.asp
50
99
Part VI
EAI and B2Bi:Enterprise Application Integration and Business to
Business Integration
Also See Session 11 Sub-Topic 3 Slides and Handout on:“Enterprise Application Integration”
100
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
51
101
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
102
MOM Application Development Tools
Serializing Java objects into XML usingreflection
Sims Computing lightweight XML messagingframework (based on JMS)xmlBlaster Message Oriented Middlewareproject
MOM platform that uses XML for the messagemeta-data and quality of service informationMessages can be filtered using XPath expressionswhich match against the XML header document
Developing MOM applications using theSAX/DOM APIs
52
103
B2Bi: B2B commerce and EnterpriseApplication Integration (EAI)
B2Bi is based on the transformation and routingof 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
104
B2Bi Direct Application IntegrationArchitecture
53
105
B2Bi Direct Application IntegrationRequirements
Ability to interact directly with applicationAPIsIntegration brokers with built-in support foradapters, transformations, and asynchronouscontent0based routingSame Integration Broker on both endsSecure transport, componentauthentification, and user authorizationsFederated security control
106
Data Exchange B2BiArchitecture
54
107
Data Exchange B2BiRequirements
Translation of data native to an applicationinto a common document format, andtransmission via a gatewayNo constraints on the presence ofIntegration BrokersB2B transactions enabled via a commondata exchange format
108
Closed Process Integration B2BiArchitecture
55
109
Closed Process Integration B2BiRequirements
Principal participant responsible formanaging processesOther participants are secondary, and do nothave visibility into the entire processRequires the introduction of businessprocess integration (BPI) services
B2Bi product offerings are beginning toincorporate BPI as an essential componentIn this case, B2Bi enables the integration oflogical business process elements expressed asactivities rather than data
110
Closed Process Integration B2BiArchitecture
56
111
Closed Process Integration B2BiRequirements
Introduces the notion of shared processesrather than operating from a centralizedmaster process manager modelEach participant is actively managingbusiness processes within its domainThe BPI layer must support fine-grainedcontrol of managed processes
112
EAI Frameworks and XMLXML complements EAI technology
Powerful meta languageSimplicitySeparation of content and presentation formatCommon open standard
EAI Frameworks must address thelimitations of XML
Limited Semantics InterpretationLack of data transformation facilitiesInefficiencies of text-based documentsAbsence of component-based routing
57
113
EAI Provides Data Transformations
114
Efficiency: Binary Objects on the Wire
58
115
Architecture Frameworks (ongoing)CORBA & Applets (e.g., VisiBroker, and ORBacus)Web Servers (e.g., Apache), Servlet & JSP Engines(e.g., Tomcat, JRun)J2EE Application Servers (e.g., JBoss, WebLogic)J2ME CLDC MIDP/PADP configuration and profilesXML Parsers (e.g., Xerces J)XML server-side POP frameworks (e.g., Cocoon)XML EAI frameworks (e.g., WebMethods)IDEs (e.g., JBuilder), and JavaBeans Development Kit(e.g., BDK)
116
Assignment
ReadingsBuilding Java Enterprise Systems: Part VII, 34-38Using Java 2 Enterprise Edition: Parts I, III, and XSlides and handouts posted on the course web site
Assignment #4c: 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 6.0. Detailsregarding the proposed architecture are available at:http://www.weblogic.com/docs51/classdocs/corba.html#code
59
117
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)