advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement



Title: Professional Java E-Commerce
ISBN: 1861004818
US Price: $ 59.99
Canadian Price:
C$ 89.95
UK Price: £ 45.99
© Wrox Press Limited, US and UK.

Reviews : Java Books :
Professional Java E-Commerce : Approaches for E-Commerce Architectures

There are no silver bullets for the perils of architecting software systems, at least not for e-commerce applications. J2EE won't address all the design and architecture needs for you, but does this imply that J2EE is not adequate for typical e-commerce application development?

In order to answer this question, let us consider the goals of J2EE. The principal goal of J2EE is to specify a platform — one that can be used to build distributed, object-oriented, enterprise applications. As we discussed in the previous chapter, what J2EE provides is a component model, and a core infrastructure. Its programming model includes Java servlets, JSP pages, beans and tags to address web application development needs, and EJBs to address distributed component development needs. The infrastructure includes several APIs such as JTA, JNDI, JMS, JDBC and so on, which are well integrated within the platform. The platform also provides the runtime support through web and EJB containers for deploying and managing J2EE applications.

Does J2EE specify any architecture for enterprise applications? Although the term "architecture" is used to refer to "the structure" or "structural views" of software, an architecture is (in simple terms) what tells you how to structure or organize various programs (whether JSP pages, or EJBs or other classes) of an application in order to implement the business use cases and other facilities. Several proponents and adapters of J2EE imply that J2EE does specify architecture for applications. However, that is not the case. J2EE does not go beyond specifying the programming model, the infrastructure, and the runtime. This leaves the application developer, as always, to make the important decisions about architecture, based on their specific business and technical requirements.

In this chapter, we shall address certain issues that affect the architecture of an e-commerce application whether it's a stand-alone application or one involving integration. Note that we will not try to develop various architectures in this chapter; instead, our focus will be on identifying certain styles applicable under different scenarios. Depending on specific application needs, you might find that your requirements can be addressed by one of the styles discussed in this chapter, or you may construct your own by extending the styles suggested in this chapter.

The following topics will be covered in this chapter:

  • Component granularity
  • Component interfaces
  • Transactions in e-commerce applications
  • Modes of connectivity

In this chapter, the phrase "distributed component" is used to mean an EJB in J2EE, and a generic term "client application" to mean all types of clients — from web clients (such as servlets and JSP pages), to stand-alone GUI-driven clients, to external applications. Although it is possible to use other relevant non-Java/non-J2EE technologies here, such technologies are excluded from this particular discussion since you'll be using Java and J2EE based technologies in the rest of this book.

Component Granularity

With component developers in the J2EE world, granularity is one of first design questions. Granularity is how clients perceive components. In the case of components representing data (such as entity beans), granularity relates to whether clients see the data as large chunks or as simple attributes. In the case of components representing business logic (such as session beans), do clients see moderately complex business processes, or simple operations? In both cases, if your answer points to large data or complex logic, you can classify such a component to be coarse-grained. If the client only sees small data or simple logic, it is said to be fine-grained.

There are several questions related to granularity. Should you develop a single bean for the entire order management system, or should you develop it into four beans, or just a simple object for the order management? What are the guidelines? Are there any tradeoffs? The answers to such questions cannot be definitive. Perhaps, in some of the applications, these questions may not matter at all. In certain other systems, the answers to such questions may greatly affect the overall application complexity, maintainability and performance. Nonetheless, it is important to consider the question of granularity during the design time.

Abstraction

Unlike other distributed technologies such as CORBA, J2EE and EJBs provide a very high-level of abstraction of the underlying distributed technology. This is true for both clients and bean developers alike. The abstraction is so strong that the difference between an object that can be referenced locally and a distributed component (an EJB) is very marginal.

The aim of shielding the developers from the underlying distribution and other system-level issues has been one of the goals of J2EE.

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.

 Avaya Developer Showcase
 MSDN Spotlight
 PHP for Windows Showcase
XML error: undefined entity at line 34
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

IBM Brings Developers Into the Cloud
Apache at 10: You Can't Buy Us
Microsoft's CodePlex Foundation Moving Forward
Apple Claims 100,000 Apps, Google Analyzes Them
Nokia Latest to Play Opera Mobile 10 Browser
PayPal Opens Up Payment Platform to Devs
Ubuntu Linux 9.10 'Karmic Koala' Starts Its Climb
IBM Links Rational Developer Tools, Tivoli Apps
Libraries Give Vista Apps a Windows 7 Look
Ubuntu: The 'Default Alternative' to Windows?

Delivering Web-based Embedded Fonts in CSS 3
Adobe Helps PHP Developers Create Rich Internet Applications
Java Developers Finding a Home at Adobe Flex
Virtualization Delivers a Dynamic Infrastructure
Consuming XML Web Services in iPhone Applications
Build a More Agile Business with IBM
POJO-Based Solutions for LDAP Access: One Good, One Better
IBM Offers Enhanced Measurement and Management for Energy Usage
IBM Helps Transformation to an Information-Based Enterprise
Top Five Touch UI-Related Design Guidelines

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Reprints, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs