190 likes | 323 Views
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
E N D
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)
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
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
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
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
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)
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
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
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
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
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
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.)
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
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
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
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
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.
Other Enterprise APIs • JAXR • UDDI or ebXML • WDSL • JMX • SAAJ • Internationalization I18n • Localization L10n