So how do you achieve solution value, and how do you begin to organize your thoughts on where to start in application development? If we had to identify the single architectural principle that is the foundation of J2EE and at the heart of the WebSphere product family, we would have to choose layering. Commonly, application development is accomplished in a vertical fashion. At a minimum the division and estimation of work is determined by defining the application's primary user interfaces.
Business rules, behavior, and data are obtained and manipulated based upon activity conveyed via the user interface. It is the responsibility of the architecture to provide a blueprint that guides developers on when and how objects are defined during the development process. The importance of establishing this blueprint is realized in support of the iterative development process, where vertical slices of application functionality are delivered in iterations made up of planning, development, and assessment activities. The architecture must support vertical and horizontal dimensions of an application. Horizontal development activities consist of applying logging, exception handling, and start up/shutdown mechanisms. Basically, this is behavior that must be provided by all applications. Vertical activities involve implementing slices of application functionality from presentation to data source access. Having the infrastructure in place to allow development to occur in these two dimensions is the responsibility of the architecture.
Most experienced IT professionals will agree that developing and adhering to a standard architecture is key to the success of large-scale software development. Computer science pioneer Edsger Dijkstra validated this notion when he developed THE operating system in 1968. Since then, layered architectures have proven their viability in technological domains such as hardware and networking.
Layering has proven itself in the operating system domain; however, the same benefits are available when applied to e-commerce or thin-client oriented applications. Layered architectures have become essential in supporting the iterative development process by promoting reusability, scalability, and maintainability. Next we will define and justify a layered architecture for J2EE and WebSphere that is the foundation for the remainder of this book.
Itz FREE...
Wednesday, November 28, 2007
1.4 What Is the Starting Point?
by
Praveen Chandrasekaran
at
4:52 AM
0
comments
1.3 Today's Enterprise Applications Have New Requirements
With increased competition, lower projected e-commerce profit margins, increased legal issues, and new IT management requirements, three things are expected in today's enterprise applications:
Solution value— solutions that rely on a layered architecture that leverages reuse and dynamic, scalable solutions that can be easily changed to meet new business needs.
Speed to market— a focus on the business domain and not the application infrastructure can help meet the ever-growing strategic application backlog. By using a repeatable standard development process that reuses legacy information and systems, a development team can begin to bring solutions to the marketplace sooner.
Secure solutions— by protecting assets, legally and technically, an IT organization can not only produce flexible solutions, it can also give the enterprise a strategic advantage in the marketplace.
by
Praveen Chandrasekaran
at
4:41 AM
0
comments
1.2 How Iterative Development Addresses Key IT Management Issues
To effectively build, deploy, and maintain an enterprise application, the project team should follow a proven process that supports an iterative development lifecycle, such as the Rational Unified Process (RUP).
Regardless of whether the development team follows a widely recognized process or creates its own, it should:
Focus on feasibility issues early in the development cycle— the project can be built incrementally by providing tangible value at each iteration in the cycle (Figure 1.1). The most difficult feasibility issues are addressed early in the process.
Figure 1.1. Iterative development process.
Build on early success— breaking the project up into smaller "chunks" allows the development team to deliver iterations early in the development cycle instead of waiting for the "big bang" delivery of the project as in the more traditional waterfall development process.
Ensure early participation and commitment by end users— while facilitating early discovery of requirements.
Reduce risk to the overall project— while increasing concrete deliverables risk can be reduced with each iteration
by
Praveen Chandrasekaran
at
4:40 AM
0
comments
1.1 Why Software Development Must Consider the Whole Enterprise
The explosive growth of the Internet has created a truly global marketplace. Because this marketplace is accessible by any customer, anywhere in the world, even small companies have the potential to compete against multinational conglomerates. However, the irrational exuberance for Web-based business-to-business (B2B) and business-to-consumer (B2C) opportunities of the late 1990s is being tempered by the reality that enterprise applications require a sound architecture in order to provide reliability, scalability, performance, and security. To ensure viability in this network economy, companies are using technology to fundamentally change the way they do business. For example, technology is being used to:
Enhance communications through a distributed, connectionless network; providing access to information anywhere, anytime. Mobile computing solutions expand the reach of information by providing wireless solutions that utilize the same technologies and network.
Leverage existing technologies, making existing resources more productive and useful to an increased number of users. It is expensive to produce information—consider the time and effort involved in building a stock transfer or insurance processing system—yet providing an access wrapper into these proven systems is, relative to their total cost, fairly inexpensive. Thus reusing information in new contexts, rather than reimplementing, is a sound business decision. In fact, the wrapping of existing technology is proving to be a significant driver for the success of Web services.
Improve the visibility of information and data, opening new and existing sources of information to a larger population of customers, vendors, employees, and others. Static information can be quickly and easily updated while dynamic solutions can be delivered with minimal effort and programming resources.
Fulfill the promises of distributed computing with flexible, and easy-to-implement programming languages, tools, components, and interfaces. The complexity of building distributed systems, combined with compatibility issues between distributed models such as CORBA and DCOM, created high barriers to entry. Previous attempts at distributed computing tended to break down in heterogeneous environments. To address these issues, the industry has adopted Web services and, in the larger sense, a service-oriented architecture as the base distributed computing model. Combined with the power of the J2EE architecture, this distributed computing technology can be utilized to deliver flexible, high-performance, and standard solutions that can be easily changed to reflect new requirements and design needs.
Streamline and reengineer business processes to do business in ways never before imagined. Self-service applications have moved information closer to the end user and reduced administrative personnel. Electronic-commerce (e-commerce) transaction-based applications have increased marketplace competition and changed the way many companies present and sell goods and services. Internet technologies have lowered the barrier of entry for many start-up ventures and entrepreneurs; allowing them to compete with larger companies. The Web has equalized the playing field for businesses, making many small ones appear larger and many larger companies move like smaller businesses.
In this chapter, we will begin by looking at the motivations for enterprise application architectures and we will end by summarizing the focus of each chapter in this book. We will look at information technology (IT) issues, focusing on the process requirements of building enterprise solutions and look at what is needed overall to respond to competition, business pressures, and new requirements.
by
Praveen Chandrasekaran
at
4:36 AM
0
comments
Java Chapter 1. Introduction
Welcome to Enterprise Java Programming with IBM WebSphere, 2nd Edition. This book was designed to help you understand how to design, build, and deploy applications based on the Java 2 Enterprise Edition (J2EE) using the IBM WebSphere family of tools and runtime. This book was written for technical managers seeking guidance in understanding J2EE and WebSphere; architects who wish to design scalable, secure enterprise applications; and for the day-to-day developer who wishes to create more robust, consistent code.
You'll find our approach to be a bit different than other books. Rather than simply focusing on the bits and bytes of each technology component that makes up WebSphere, we take a slightly broader view. We will show you how J2EE and WebSphere combine to form an architecture and runtime suitable for large, mission-critical applications.
If you have already invested in the award-winning WebSphere Studio family of tools, or you are considering doing so, this book will ensure that you get the maximum productivity benefits WebSphere has to offer. Through hands-on examples, we will illustrate how the IBM WebSphere Studio family of tools helps you master enterprise application development. These examples will also demonstrate some of the J2EE best practices which are intended to make your development tasks easier, your code more maintainable, and your enterprise projects successful. Along the way, we will also provide rationale for our approaches to building enterprise applications. We will start by discussing the importance of enterprise development, explaining the development process, and presenting the topology of properly layered enterprise applications.
by
Praveen Chandrasekaran
at
4:28 AM
0
comments