ENTERPRISE APPLICATION DEVELOPMENT
Enterprise Application Development 01-2
the course title the course contents the resources the challenges the encounter
Enterprise Application Development 01-3
Enterprise Applications Software applications that integrate and support
all aspects of operations of an enterprise/ business
TECHNICAL CHALLENGES • Heterogeneous data sources • Diverse user base • Multiple platforms/ products/ vendors/ technologies • High level of integration, consistency and security
EXAMPLES • Transaction Systems, ERP Systems, Inventory,
Invoicing, Credit Systems
Enterprise Application Development 01-4
Transaction Processing Systems
The real state is represented by an abstraction, called the database, and the transformation of the real state is mirrored by the execution of a program, called a transaction, that transforms the database.
Application Domain Process
Enterprise Application Development 01-5
Business Transactions Business Transaction is a fundamental high-level concept
that defines tangible discrete Application Domain process performing the business function or task
Business Transaction is visible to the user as it directly represents some business process and achieves user’s business goals, in the language of the business domain expert
Business Transaction can represent the delivery of some service, or making the deal. In turn, deal may consist of several smaller Business Transactions in their own right.
Transaction may mean something different in various parts and layers of the Enterprise Architecture
We capture Business Transactions by analyzing the Business requirements, and faithfully implement them by mapping onto underlying transactions in the IT solution that we build
Enterprise Application Development 01-6
Transactions are in...
• Each time you make a phone call, there is a call setup transaction that allocates some resources to your conversation; the call teardown is a second transaction, freeing those resources. The call setup increasingly involves complex algorithms to find the callee (800 numbers could be anywhere in the world) and to decide who is to be billed (800 and 900 numbers have complex billing). The system must deal with features like call forwarding, call waiting, and voice mail. After the call teardown, billing may involve many phone companies.
Enterprise Application Development 01-7
Transactions are in...
Each time you purchase gas using a credit card, the point-of-sale terminal connects to the credit card company's computer. In case that fails, it may alternatively try to debit the amount to your account by connecting to your bank. This generalizes to all kinds of point-of-sale terminals
such as cash registers, ATMs, etc. When banks balance their accounts with each other
(electronic fund transfer), they use transactions for reliability and recoverability.
Enterprise Application Development 01-8
Transactions are in...
Making reservations for a trip requires many related bookings and ticket purchases from airlines, hotels, rental car companies, and so on. From the perspective of the customer, the whole trip
package is one purchase. From the perspective of the multiple systems involved, many transactions are executed: One per airline reservation (at least), one for each hotel reservation, one for each car rental, one for each ticket to be printed, on for setting up the bill, etc. Along the way, each inquiry that may not have resulted
in a reservation is a transaction, too.
Enterprise Application Development 01-9
Transactions are in...
Order entry, job and inventory planning and scheduling, accounting, and so on are classical application areas of transaction processing. Computer integrated manufacturing (CIM) is a key technique for improving industrial productivity and efficiency. Just-in-time inventory control, automated warehouses, and robotic assembly lines each require a reliable data storage system to represent the factory state.
Enterprise Application Development 01-10
Transactions are in...
This application area includes all kinds of physical machinery that needs to interact with the real world, either as a sensor, or as an actor. Traditionally, such systems were custom made for each individual plant, starting from the hardware. The usual reason for that was that 20 years ago off-the-shelf systems could not guarantee real-time behavior that is critical in these applications. This has changed, and so has the feasibility of building entire systems from scratch. Standard software is now used to ensure that the application will be portable.
Enterprise Application Development 01-11
Solutions for building enterprise applications using Java-based technologies • Designing multitier enterprise applications with Java™ 2
Platform, Enterprise Edition: Principles and Guidelines • Key J2EE Technologies
Java Servlet: a simple, consistent mechanism for extending the functionality of a web server
Java Server Pages: a simplified, fast way to create server and platform independent dynamic web content
Enterprise JavaBeans Architecture: create, deploy and manage cross-platform, component-based enterprise applications
Enterprise Application Development 01-12
Challenges in building Enterprise Applications J2EE Platform Technologies The Client Tier The Web Tier The EJB Tier The EIS Tier Packaging and Deployment Transaction Management Security Implementation
Enterprise Application Development 01-13
Architecture and Guidelines
• Designing Enterprise Applications with the Java™ 2 Platform, Enterprise Edition (Nicholas Kassem et al.)
• Enterprise Integration Patterns (Gregor Hohpe and Bobby Woolf, Addison-Wesley)
• Core Servlets and JavaServer Pages (Marty Hall) • Developing Java Servlets – The Authoritative Solution
CHALLENGES of Enterprise Application Development
Enterprise Application Development 01-15
Business Challenges of the Enterprise Architect Providing IT support for the enterprise...
• Free maneuvering to & from Business Application Domain and Information Technology Cannot afford to be a backroom techo It is not enough to know business, you still have to be a
techo, and a high-flier at that must find a fine balance between the broad understanding
of technologies and the deep technical knowledge and skills • Enterprise Solutions: for the people and by the people
managing expectations and perceptions public relations, leadership and ability to sell benefits of the
technical solution to all stakeholders overcoming mutual misunderstandings, apathy or
Enterprise Application Development 01-16
Timeliness—The Critical Factor
The principal issue is how to keep up with today’s business challenges • Adoption of new technologies • the accelerated pace of the information-driven business • maintaining and leveraging the value of existing
Timeliness, productivity, security, and predictability are all absolutely critical to building and maintaining momentum
Enterprise Application Development 01-17
Programming Productivity /1 The ability to develop and deploy applications is key to
success in the information economy Productivity is vital to responsive application development The current divergence of technologies and programming
models is a destabilizing factor in Internet and other distributed computing applications • Traditional Web technologies such as HTML and Common
Gateway Interface (CGI) have provided a mechanism for distributing dynamic content
• while back-end systems such as transaction processors and database management systems have provided controlled access to the data to be presented and manipulated.
Enterprise Application Development 01-18
Programming Productivity /2 No standard application model
• architecting applications becomes more complex • the skill sets required to integrate these varied technologies
aren’t well organized for effective division of labor Support for diverse cliental
DESIREABLE Providing application development teams with standard
means to access the services required by multitier applications and standard ways to support a variety of clients can contribute to both responsiveness and flexibility
The programming model needs to support a variety of client configurations, with minimum effect on basic application architecture and on the application’s core business logic.
Enterprise Application Development 01-19
Integration with Existing Systems
Valuable organizational data is collected over the years by existing enterprise information systems
Much of the programming investment resides in applications on those same systems
The challenge for developers of enterprise applications is how to reuse and commoditize these existing information assets
To achieve this goal, application developers need standard ways to access middle-tier and back- end services such as database management systems and transaction monitors
Consistent provision of services to allow expansion of applications
Enterprise Application Development 01-20
Freedom of Choice Application development responsiveness requires the ability
to mix and match solutions to come up with the optimum configuration • extending from servers to tools to components
Benefits: • to select configurations tailored to their application
requirements • the ability to move quickly and easily from one configuration
to another as internal and external demand requires • taking advantage of external expertise and to enhance
development productivity The wide range of J2EE compatible solutions available
today and in the future ensures the maximum freedom of choice
Enterprise Application Development 01-21
Response to Demand Both availability and scalability are key considerations for
large-scale distributed applications. The more easily and automatically that an application can
handle changes in use patterns and system configurations, the better.
Systems requiring any redesign, recoding, or redeployment to achieve either availability or scalability will limit flexibility and diminish expected performance
To scale effectively, systems need to be designed to handle multiple client interactions with ease.
For highest availability, they need access to features such as automatic load balancing and failover, without any effort on the part of the application developer
Applications should be able to run on any server configuration appropriate to anticipated client volumes and to easily switch configurations when the need arises
Enterprise Application Development 01-22
Maintaining Security Traditionally, IT departments have been able to maintain a
relatively high level of control over the environment of both servers and clients
When information assets are exposed in less-protected environments, it becomes increasingly important to maintain tight security over the most sensitive assets, while allowing seemingly unencumbered access to others
One of the difficulties in integrating disparate systems is providing a unified security model • Single sign-on for a user across internal application and asset
boundaries • Highly secure, yet unobtrusive and transparent access
MEETING THE CHALLENGES The Platform for Enterprise Solutions
Enterprise Application Development 01-24
Java™ 2 Enterprise Edition (J2EE)
The J2EE platform represents a single standard for implementing and deploying enterprise applications
designed through an open process designed to provide server-side and client-side
support for developing distributed, multitier applications
addresses the core issues that impede organizations’ efforts to maintain a competitive pace in the information economy
Enterprise Application Development 01-25
Client tier: to provide the user interface
one or more middle-tier modules: to provide client services and business logic for an application
back-end enterprise information systems tier: to provide data management
Enterprise Application Development 01-26
The J2EE Environment Various Components and Services
Enterprise Application Development 01-27
The J2EE Environment Features
Multitier Model Container-based Component Management Support for Client Components Support for Business Logic Components Support for J2EE Standard
Enterprise Application Development 01-28
The J2EE Environment Benefits
Simplified architecture and development Freedom of choice in servers, tools, and
components Integration with existing information systems Scalability to meet demand variations Flexible security model
Enterprise Application Development 01-29
J2EE Application Scenarios
Multitier Application Scenario Stand-alone Client Scenario Web-centric Application Scenario Business-to-Business Scenario
… and more stuff, next time…
Enterprise Application Development 01-30
Web Application Architecture