19
Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Embed Size (px)

Citation preview

Page 1: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Enterprise Computing

COSC 617

Jeff Schmitt

September 7,2006

Page 2: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Enterprise Computing

• Combining separate applications, services, and proccesses

• Unified system which is greater than the sum of its parts

• Difficulties have been made easier by powerful tools and API’s

• Heterogeneous network of systems (mainframe, mini, OS, legacy)

Page 3: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Enterprise Computing (Cont.)

• Different protocols, overlapping standards

• Standards extended by vendors in unstandard ways

• Vocabulary and terminology can date back to earlier era, causing confusion

• In the past, ad-hock tools were used to create enterprise systems

• Today we have some standards that help

Page 4: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Java in Enterprise Computing

• Platform independent• Heterogeneous networks no problem• J2EE framework forms a single, standard layer

API on top of various proprietary or vendor-enhanced API’s

• J2EE provides a solid foundation from which you can layer additional API’s, non-standard or standard.

• Older systems lacked Object Orientation, which Java supplies

Page 5: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Standard Java Enterprise API’s Basic tools

• JAXP – Java API for XML Parsing– Consuming and producing XML

• J2EE security– authentication and authorization, identity

propagation– deployment descriptor scripting

Page 6: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Std. Java Enterprise APIs (cont)Web UIs and components

• Java Servlets – Multithreaded, memory resident– HTTP doGET, doPOST methods– HTTP request, response objects– Not a file, needs servlet mapping

• JSP Java Server Page – – Compiled to a servlet– Acts like a file– Intended to separate page design from java

programming• JSF Java Server Faces

– UI component model

Page 7: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Std. Java Enterprise API’s (cont)Data Access

• JDBC Java Database Connectivity– vendor independent interface to server to execute

SQL and receive result sets

• JNDI – Java Naming and Directory Integration – working with directory services

• JTA Java Transaction API– Manage distributed transactions, a group of

transactions that must behave atomically.– Binding for the XA API (Open Group)

Page 8: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Std. Java Enterprise API’s (cont)Distributed Computing-Web Services

• JAX-RPC Java XML Remote Procedure Calls

• SAAJ – SOAP with Attachments API for Java– Using and writing web services– XML-based protocol transmitted over HTTP,

etc

Page 9: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Std. Java Enterprise API’s (cont)Distributed Computing-Remote Objects

• Java RMI- Remote Method Invocation– Extends OO paradigm to client/server– Client and server must be written in Java

• Java IDL and Corba– Like RMI but for heterogeneous networks where

clients and servers can be written in arbitrary languages

• EJB – Enterprise Java Beans– Component model for units of business logic– Run within an EJB container which is in an

Application server – both layers add services

Page 10: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Std. Java Enterprise API’s (cont)Messaging

• JMS – Java Messaging Service– General Enterprise Messaging– Message – a chunk of data sent from one

system to another asynchronously– Serves as a kind of event notification

• JavaMail – Java Email– Sending and receiving - SMTP, POP, IMAP – JavaBeans activation Framework - MIME

based email messages

Page 11: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Defacto Standards for Enterprise

• J2EE is a critical mass for developing and running enterprise applications but some gaps are left– Gaps allow developers to be creative– Some gaps are temporary while J2EE standards are

being developed– Some gaps are intentional when it does not make

sense to develop a standard.

• Our study will be of standards which– Open Source solutions– Large size of user community

Page 12: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Defacto Tools for Enterprise

• Ant– Building and deploying applications

• Junit and Cactus– Testing your objects, components and applications

• Struts– Implementing Model-View-Controller systems

• Hibernate– Object Relational Mappings

• XDoclet and Java annotations– Metadata to simplify development

Page 13: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Enterprise Computing Scenario

• CornCO, Inc.– Catalog-based mail-order business– Sell fresh flavored popcorn

• Servers– Web server for customer shopping– Application server to run J2EE apps– Database server for storing data– Billing server is a legacy application– Messaging server (email, SMS, etc.)

Page 14: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

CornCo order processing

• Customer uses web browser to access http://www.cornco.com/

• Shopping Card servlet – User authentication (login)– implements “session” to make stateless HTTP transactions into

stateful transactions– JDBC to access RDMS for product information

• Checkout servlet will access enterprise APIs– JDBC to access RDBMS database for customer information– CORBA remote object to access legacy billing server which has

non-standard interface– JNDI to access directory of warehouses to choose one near

customer– JMS to access messaging server -- to send order to warehouse

and queue the message

Page 15: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

CornCo Enterprise Computing

• Flaw in previous system – transactional integrity– Send billing information to one server– Send fulfillment information to another server– If one server crashes before information can be

accepted: bill without shipping or ship without billing

• Modified system will have Application server for Enterprise Java Beans

• Webserver and Shopping Cart servlet unchanged

• Conversion of Checkout servlet to Checklet EJB

Page 16: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Functions of Checkout Servlet

• Rewritten to use JNDI to search for Checkout EJB

• Use RMI to invoke methods on the EJB

• No longer manage connections to databases

Page 17: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Functions of Checkout EJB

• Takes over major functionality from old Checkout Servlet

• Store customer data in RBMS using JDBC• Send billing information using Corba• Looks up warehouse using JNDI, sends shipping

information using JMS• EJB container wraps a distributed transaction

around its actions, so billing and warehouse operations are atomic.

• Rely of EJB container for connection management

Page 18: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Other potential Directions

• Expand to incorporate new partners whose services are accessible to CornCo – Use SOAP web services clients to make remote calls

to these services

• Partners need integration points into CornCo business processes as well as desktop tools. – Develop a suite of SOAP web services to expose the

data to partners in a platform-neutral way

• Track orders fro mobile devices– Inbound and outbound email. Formatted messages

request and receive notifications of order status.

Page 19: Enterprise Computing COSC 617 Jeff Schmitt September 7,2006

Other Enterprise APIs

• JAXR

• UDDI or ebXML

• WDSL

• JMX

• SAAJ

• Internationalization I18n

• Localization L10n