Chapter 1: Introducing .NET and Enterprise Architecture


An enterprise application is one that supports any multidivisional organization with data and services that enable business-specific functions. Such applications typically integrate multiple technologies, such as database access, directory services, mail services, business processes, and more. This chapter defines the components of an enterprise application and then explores the technologies involved in creating one.

Finally, the chapter introduces IssueTracker, the fully functional enterprise application that this book builds with each subsequent chapter. The IssueTracker example application will serve as a central repository for issues within an enterprise, such sales requests , support issues, development bugs , and executive status. As an enterprise-wide application, IssueTracker will interact with multiple server-side resources, such as databases, e-mail servers, process management engines, directory services, Web services, reporting services, and mobile services. Starting with this chapter, each chapter outlines the best practices that yield maximum performance, reliability, and scalability.

Defining Enterprise Applications

An enterprise represents a corporate entity with several interacting departments, each managing different types of data and performing different functions. Figure 1-1 models a typical enterprise. It is composed of several departments including Sales, Marketing, Human Resources, Development, Customer Support, and Information Technology. Each department operates independently but shares specific data or services. For example, the Sales department tracks the names and contact details of customers. The Support department refers to the customer information to help customers experiencing problems with the company's product and to enter customer problem information. The Development department reviews the customer problem information to improve the product and update the status of the problem. Finally, the company's management monitors the customer and problem information captured in an effort to improve the company's operations.

click to expand
Figure 1-1: Department relationships within a typical enterprise organization

For an enterprise application to support different departments, it needs to manage two important company assets: business data and business processes.

Introducing Business Data

Business data is any data that helps a business operate more effectively. It typically needs to be accessed by different departments within an organization. Business data needs to be reliably accessible, scalable, and secure.

Accessibility refers to the capability of multiple users operating on a variety of platforms and devices being able to interact with the business data. Flexible enterprise applications will have more than one form of user interface. In most cases, one primary user interface client will be developed, and one or more additional clients will be developed. This scenario might include a primary Web-based client and supporting clients in the form of a Windows application, a Pocket PC application, or a cellular phone application. All clients are accessibility tools that help users interact with business data and services.

Scalability refers to the capability of increasing the number of system resources, such as servers, to support an increase in the number of connected users without impacting performance. Typically, smaller database applications, such as Microsoft Access or Microsoft Visual FoxPro, can reliably support large amounts of data storage but with only a handful of concurrent connections. An enterprise database, such as Microsoft SQL Server, Oracle, or MySQL, has built in support for handling larger volumes of data with hundreds of concurrent connections, as well as transaction and backup services. However, such databases are significantly more expensive and require specialized maintenance.

To secure business data, you offer data access to specific users privileged to access that data. There are many different levels of security. For example, you could fundamentally grant access to employees and block everyone who does not work at the company. Then, within a company, you could grant access to department team members and block everyone else. Finally, you could grant access to certain levels of management and block everyone else. In this scenario, you need to look at the data closely to determine which employee should access which data. Also, you need to determine the type of data access: read only, read- write, or no access.

Introducing Business Processes

A business process , or workflow, is a series of steps that accomplishes a specific business goal. Business processes are typically either internal or external. Internal processes might span multiple departments, and external processes usually span multiple enterprises . Both process types might combine automated tasks with human interaction tasks .

An example of an internal business process is an employee new-hire process. When the Human Resources department enters a new employee's personal data, that data is validated for completeness. Then, the Information Technology (IT) department is notified to create a new user account, create a new telephone account, create a new e-mail account, assign a computer, and then notify the Human Resources department when completed.

An example of an external business process is a supply-chain process. When one company orders merchandise from another, the supplier inventory is checked. If the item being purchased is out of stock, then the supplier orders from the distributor. If the distributor is also out of stock, the product is ordered from the manufacturer.

Business process automation solutions implement processes that combine automated and human interaction tasks and that provide a user interface for graphical modeling.

Introducing the Enterprise Application Components

Developing an enterprise application requires interactions with many components, including data access, business rules, and the user interface. Figure 1-2 illustrates a typical enterprise application architecture and its software components.

click to expand
Figure 1-2: Enterprise application components

As Figure 1-2 illustrates, multiple technologies work together to implement an enterprise application:

Database access services: Database access technology is fundamental to any application regardless of whether it is an enterprise application. The purpose of any application is to interact with data by storing, retrieving, and searching for specific values. The .NET Framework provides the Active Data Objects (ADO) framework as the primary toolset for reading from and writing to databases. As explained in Chapter 2, "Accessing Data in ADO.NET," ADO.NET provides different data access mechanisms optimized for different types of data sources.

Directory services: Directory services provide a single point of entry into a networked application. With Active Directory, users can be validated and then access networked resources such as directories, printers, and so on from a single login. Applications can leverage directory services to search the network for system resources, such as files and printers. Active Directory also supports third-party directory service solutions found in many enterprises, such as the Novell Directory System (NDS) and the Netscape Directory Server. Chapter 3, "Using Networking and Directory Services," covers directory services and their role in an enterprise application.

Messaging services: Messaging services provide a mechanism by which applications can reliably send and receive messages between applications within the enterprise or across multiple enterprises. Message content can vary between applications and can initiate a process on another system. Messages are also reliable in that if they fail to reach their destination, they are queued and resent when the destination is accessible again. Chapter 4, "Applying Reliable Messaging," covers messaging services and the Microsoft Message Queue (MSMQ).

Mail services: Mail services enable applications to send and receive standard e-mail messages between applications. Because many enterprise applications link multiple users together, e-mail-based notification systems can be an effective means of notifying users when a server-side process ends or when human interaction is necessary to complete a workflow. Support for mail services is undoubtedly a cornerstone technology that helps an enterprise application tightly integrate into the organization. Chapter 5, "Integrating Mail Services," covers integrating mail services into the application framework.

Business process automation: Business process automation enables users to define a series of repeatable tasks that helps accomplish a specific business goal. You can start these processes by hand, by an application-triggered event, or by the presence of a document within a specified location. Processes can combine automated tasks, such as routing documents from one place to another, and human interactive tasks, such as setting a manager's approval. Business processes are valuable to enterprise applications in that they streamline business operations so that tasks are accomplished faster and with fewer resources. They also help link different parts of the enterprise. Chapter 6, "Automating Business Processes," covers how to define business processes and incorporate them into an enterprise application.

Web applications: Web applications are software solutions that reside largely on a remote server. Users interact with these remote servers with a thin client, such as a Web browser. Although Web applications are easily deployable to multiple operating system platforms, the result is a simple user interface that offers slower performance. For many enterprise developers, choosing to develop a thick desktop client vs. a thin Web client is a difficult decision. Chapter 7, "Building Web Applications," covers developing Web applications that tap into core business functionality.

Desktop applications: Desktop applications reside largely on each user's computer. All application logic executes locally but typically connects to a remote database. Desktop applications often have a much richer user interface than their thin Web application counterparts. Desktop applications also execute much faster in terms of screen refreshing. Chapter 8, "Developing Desktop Applications," covers building deployable desktop applications that integrate core business functionality.

Web services: Web services provide a framework for platform-independent data exchange based on published open standards. Web services implement or wrap specific business functionality and return platform-independent documents structured in the Extensible Markup Language (XML) format. Web services are ideal for building inter-enterprise application integration solutions. Some think of a Web service as a Web site without the user interface. Chapter 9, "Using XML and Web Services," includes a detailed look at Web services and how they can enhance accessibility in an enterprise application.

Reporting services: Reporting services provide a mechanism for generating structured reports in tabular or graphical format. Reports communicate status or statistical information relating to the enterprise application's data. Although you can also implement reporting within a dynamic Web page or a dynamically rendered Windows form, using a reporting technology such as Crystal Reports streamlines the report-building process and makes it easier to create and deploy new reports . Chapter 10, "Integrating Reporting Services," covers building a reporting layer that integrates with an enterprise application.

Wireless services: Wireless services expose enterprise application data and services to mobile devices, such as Personal Digital Assistants (PDAs) or Web browser “enabled cellular phones. Wireless services help extend an enterprise application's reach to employees outside of the office, such as a field service representative who is at a customer's site and needs to check back with the office. Enterprise applications supporting wireless extensions offer additional value to customers in need of application data access anywhere and anytime . Chapter 11, "Deploying .NET Applications on Wireless Devices," covers building a wireless application layer that targets PDAs and Web-enabled cellular phones.

Integration services: Application integration binds different applications together to work as a single application that solves a single problem. There are many different techniques for accomplishing application integration that depend on the type of applications being integrated. Chapter 12, "Integrating .NET Applications," outlines different approaches as well as the advantages and disadvantages to each approach.

Security services: Securing enterprise data and services is an increasing concern to most consumers of enterprise applications. Chapter 13, "Understanding .NET Security and Cryptography," explores potential security holes within an enterprise application and outlines implementation strategies to ensure that an application is designed and built with security in mind.

Deploying an enterprise application into a customer environment might be the last step, but you should not take it lightly. The deployment process is often the first impression that an application makes to its user. If that process is too lengthy, too complicated, or requires too much user involvement, users might be turned off to the application before they even use it. Chapter 14, "Installing .NET Applications," dives into the details and best practices for building easy-to-use deployment projects.




Developing. NET Enterprise Applications
Developing .NET Enterprise Applications
ISBN: 1590590465
EAN: 2147483647
Year: 2005
Pages: 119

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net