Design issues in enterprise applications !!!
1. How to choose what should be there in presentation layer.
2. What should be there in Persistence layer?
3. What should be there in Business layer?
4. What should be there in services layer?
5. What are the deployment issues to be taken care?
6. Design patterns to be used.
Anyother issue plz add/discuss.
I know that all the above are based on the requirements.
In the early 1990s, a small news item in Wired magazine described an obscure software product developed out of the University of Illinois. The application was called Mosaic, and it soon proved to be the "killer app" of the Internet. Within a matter of several years, an entire industry had been built around it and its successors. Mosaic was not the first application of its type, but it delivered a new paradigm of usability to the previously arcane task of "browsing" hypertext links.
Another potentially industry-defining technology recently emerged at the inaugural EPC (Electronic Product Code) Symposium, held September 15-17 in Chicago's McCormick Place The gathering marked the official launch of the Electronic Product Code Network, an open technology infrastructure developed by a global consortium of companies and researchers.
The EPC network, using tiny RFID (Radio Frequency ID) tags, will enable computers to automatically recognize and identify everyday objects, and then track, trace, monitor, trigger events, and perform actions on those objects. The technology will effectively create an "Internet of things." RFID will fundamentally impact the industries of manufacturing, retail, transportation, health care, life sciences, pharmaceuticals, and government, offering an unprecedented real-time view of assets and inventories throughout the global supply chain. And in the process, whole new vistas (and challenges) will open up to software developers.
Evolution or Revolution?
Most industry observers agree that the next wave of growth in the technology sector will be outside the realm of the traditional PC desktop. But many think of that growth in mundane terms -- with such things as cell phones and PDAs. In reality, we stand on the verge of an era that will see previously unimagined networked devices and objects. There are already some exciting applications that span the technology spectrum. NASCAR.com offers a Java applet-driven virtual dashboard that displays real-time wireless telemetry from cars during a race -- registering location, speed, RPM, braking, and more. The race cars have effectively become networked devices. Meanwhile, NASA, with the assistance of GE Medical, is now able to monitor real-time medical data (such as blood pressure, respiration, and heart rate) from its Space Shuttle astronauts. Even trees are on the network. Fifty battery powered "micromote" sensors now dangle from UC Berkeley's Mather Redwood Grove, part of a pilot program to monitor the health of groves of redwoods. The sensors register light, moisture, and temperature, enabling scientists to continuously monitor the microclimates surrounding given trees.
Such diverse networked "devices" offer concrete evidence of Metcalfe's Law. Robert Metcalfe, one of the developers of Ethernet, formulated that the usefulness of a network increases by the square of the number of nodes (users or devices) connected to the network. (Imagine how useful the telephone system would be if there were only two phones in the world!)
"In the future, everything of value will be on the network in one form of another," says John Fowler, Software CTO of Sun Microsystems. "And once they're on the network, we can aggregate data from those diverse devices, and then deliver that data to equally diverse devices -- in informative and compelling ways." And that's exactly what we're seeing today. "Most people think of a PC or a PDA as things connected to the network," continues Fowler. "But here we are connecting trees, race cars, and astronauts to the network. It's going to become a much more seamless spectrum."
More about RFID
With the official release of the Electronic Product Code Network, we are about to see the "Internet of things" paradigm enter the big time -- the world of mainstream commerce.
Looking at the big picture, the term Auto-ID refers to any broad class of identification technologies used in the world of commerce to automate, reduce errors, and increase efficiency. These technologies include bar codes, smart cards, sensors, voice recognition, and biometrics.
But the Auto-ID technology currently on center stage is Radio Frequency Identification (RFID). RFID is a generic technology that entails using tiny wireless transmitters to tag individual objects, uniquely identifying them. Such RFID tags allow companies to automatically track objects, trigger events, and perform actions upon the objects.
RFID chips have now been made as small as 0.3 millimeters (about the size of a pencil tip). There are a variety of different types -- active (battery-driven), semi-passive (also battery-driven), and passive (driven by the inductive energy of a tag reader). Each has different advantages, disadvantages, and features.
Using of j2ee pattern to make robust in distributed application
1. Persistence Layer mechanism to implement for multiple object actions, Transaction support , Multiple database Support & XML Marshling.
2.Business Layer provide external services to your application by designing of
EJB components .
3.Service Layer provide regular services to your business logic by using SessionFacade, DataAccessObject [Patterns].
4. Mentioning your jar, war in respective directory.
i know what each layer is comprised of. can you plz tell me design issues in each layer. for example consider the presentation layer, selection of ui to be developed, swing/jsp/servlet. issues no. users, ui response to the user actions, time taken for the transactions. how do i speed up or better response to the user actions.
In presentation layer designed with [User-Interface Components,Tag libraries]when appling of design patterns like FilterController, FrontController.
1. [FrontController ]The System handle centralizedpoint of presentation layer handling to view management, system services . Based on user-request controller dispatches the request to different views [jsp,servlets].
2. By appling FilterController based on user-request Filter manager [servlet] create [Filterchain] class order sequence of [Filters class] .Each independent Filter class have a own target .
Bussiness Layer :
1. Service Locator Pattern Identifying objects in different locations mainly implemented for business services.
2. Value Object pattern constructs different value object instances to client to accessing different attributes.
1.DAO Pattern abstract & encapsulate all data processing between resource object with external resources like XML API
I need to know is it correct to use a thread in a helper class that my bean uses? Does it necessarily break EJB specs? What impact can it have on the bean and any other alternatives to it??? (Let's say I have a logging facility that's done on one central log repository. I need to put this code in a separate thred so that my Bean doesn't get blocked while servicing clients...).
ny help would be appriciated.
Thanks in advance,
I'd stay away from forking off threads for helper classes when using EJBs. Entity beans are by default non-reentrant and single-threaded. You could very easily write code that would interfere with your EJB container.
I'd suggest taking a look at using Message Driven Beans instead of separate threads for your helper objects. MDBs execute asynchronously so your calling bean will not get blocked while the MDB is executing.
Check out Martin Fowler's latest book, Patterns of Enterprise Application Architecture.