Historically, little thought has been given to creating or maintaining strategic architectures for business enterprises. As the competitive landscape continues to put pressure on organizations to be more efficient, the process of implementing unified Enterprise Architecture will become an essential part of any business. This paper covers the definition of Enterprise Architecture, provides a description of how it should be utilized to tightly couple business processes and goals to information systems, and how to create an architecture that is able to be supported.
Enterprise Architecture:
Enterprise Architecture is a tool that aids businesses by allowing managers to see and think about smaller functions within the whole of the business. A common phrase used to describe an Enterprise Architecture is a set of "living documents" that are short, simple, and easy to understand. Enterprise Architecture is a relationship between processes and goals that allow businesses to organize, assess, and implement changes based on a set of "blueprints." These blueprints vary based on what is needed. For example, a company setting up an Enterprise Architecture could have three, four, or five different sets of blueprints for various reasons, such as one for product assessment, one for consumer reports, and so on. Not only is Enterprise Architecture a set of blueprints, it is the actual work behind those plans. Implementation is required for the architecture to be built and maintained, as all the plans and actions must be integrated so that proper managers can view needed material in its relationship to other factors.
After building upon the blueprints and integrating all the processes and goals, the proper questions may be asked. These questions are what bring about change that may improve and maintain a business.
An Architecture Cycle:
When establishing an Enterprise Architecture, all aspects need to be incorporated into one place. It is this assimilation that allows managers to begin questioning. Often, this process is a cycle with four phases. First, an architect receives input about new strategies, goals, and processes that may not be performing properly. Next, the architect must look at any further implications and connect those to the received input. Third, the architect makes alterations based on the input and wider implications. Lastly, the process starts all over again. Overall, this cycle gives the architect the opportunity to assess all areas of the business, including some that may have been overlooked, and make changes that will best suit the organization.
Organizing Business Processes and Informational Systems:
Once organized, an architect will assess the alignment of business processes to informational systems. Simply put, an architect translates the information that is transferring from process to applications and vice versa. The architect determines if the results are in-line with goals, and so on. Proper organization allows the architect to translate and even determine where translation is needed.
Creating an Enterprise Architecture:
Enterprise Architectures are not developed in a day, and in order to set up an Enterprise Architecture, an organization needs to establish a series of steps.
The specifics of the individual Enterprise Architecture will differ among businesses. However, listed below are six general steps for creating an Enterprise Architecture:
1. Assess Current State & Agree on Deficiency:
To create an Enterprise Architecture, it takes one or more persons to determine the need for such an architecture. The Enterprise Architect, usually the one who suggests the architecture and ultimately builds it, assesses the different variables that demonstrate a need for change.
2. Select a Framework, Platform and Methodology:
The selected framework should fit the individual needs of the business, the goals and desired results of the organization, as well as a course of action that suits both the architect and managers.
3. Select Tools:
Keeping track of the integration of the processes and documentations may require the utilization of various tools. Appropriate tools will store all the information in a repository that will allow managers to access the needed materials.
4. Organize, Organize,
Organize:
Whichever type of organization an architect chooses, it is important to remember that this is the most time-consuming and important step. One suggestion for a type of organization is Business Functional Domains & Sub Domains over a unified architecture. Another method for organization is to build the models of the existing system as they are improved
5. Utilize the Architecture:
Although the architecture may not be complete, the business should begin to use it. It is designed to fit the organization; therefore, the architect should make sure that the managers start to utilize its benefits as soon as possible.
6. Maintain & Build Upon the Architecture:
Once the foundation for the architecture is done, the business should maintain and build upon the architecture, and in order to do so, a methodology should be selected. A methodology will allow managers and workers to function with the same goals in mind, improving results. In addition to maintaining results, the right methodology allows a business to expand the architecture's uses to fit the organization's needs.
Initiating and Supporting an Enterprise Architecture:
When initiating an Enterprise Architecture, one must survey the existing environment, talk to representative users, read existing documentation, and study current systems. It is critical to seek inherent problems the enterprise has in accomplishing the tasks it needs to perform in order to be successful. This is accomplished by boiling down the potentially large amounts data gathered and abstract the findings into the conceptual diagrams. One must aggregate important policies and standards into a cohesive and broadly applicable guidance document. Applying some well-known patterns and a few of the favorite concepts will evolve working documents into drafts and eventually into the proposed architecture. Educated and armed, one is able to lobby superiors, peers, and subordinates to aid in implementing the architecture.
To support an Enterprise Architecture, certain tools are relied upon that will aid in the integration and execution of the architecture. These tools should provide the opportunity to view all diagrams, documentations, and processes. Although analyzing and designing processes are still left to be done, assembling and tracking the various relationships will be managed by using a tool.
Enterprise Architecture At Work
Awell-designed Enterprise Architecture should meet the following goals.
Be robust
Enterprise software is important to anorganization. Its users expect it to be reliable and bug-free. Hence we mustunderstand and take advantage of those parts of J2EE that can help us buildrobust solutions and must ensure that we write quality code.
Be performing and scalable
Enterprise applications must meet theperformance expectations of their users. They must also exhibit sufficientscalability - the potential for an application to support increased load, givenappropriate hardware. Scalability is a particularly important consideration forInternet applications, for which it is difficult to predict user numbers andbehavior. Understanding the J2EE infrastructure is essential for meeting boththese goals. Scalability will typically require deploying multiple serverinstances in a cluster. Clustering is a complex problem requiring sophisticatedapplication server functionality. We must ensure that our applications aredesigned so that operation in a cluster is efficient.
Take advantage of OO designprinciples
OO designprinciples offer proven benefits for complex systems. Good OO design practiceis promoted by the use of proven design patterns - recurring solutions tocommon problems. It's vital that we use J2EE to implement OO designs, ratherthan let our use of J2EE dictate object design. Today there's a whole"J2EE patterns" industry. While many "J2EE patterns" arevaluable, classic (non-technology-specific) design patterns are more so, andstill highly relevant to J2EE.
Avoid unnecessary complexity
Practitionersof Extreme Programming (XP) advocate doing "the simplest thing that couldpossibly work". We should be wary of excessive complexity that mayindicate that application architecture isn't working. Due to the range ofcomponents on offer, it's tempting to over-engineer J2EE solutions, acceptinggreater complexity for capabilities irrelevant to the business requirements.Complexity adds to costs throughout the software lifecycle and thus can be aserious problem. On the other hand, thorough analysis must ensure that we don'thave a na've and simplistic view of requirements.
Be maintainable and extensible
Maintenanceis by far the most expensive phase of the software lifecycle. It's particularlyimportant to consider maintainability when designing J2EE solutions, becauseadopting J2EE is a strategic choice. J2EE applications are likely to be a keypart of an organization's software mix for years, and must be able toaccommodate new business needs.
Maintainability and extensibility depend largely on clean design. We need toensure that each component of the application has a clear responsibility, andthat maintenance is not hindered by tightly-coupled components.
Be delivered on time
Productivityis a vital consideration, which is too often neglected when approaching J2EE.
Be easy to test
Testingis an essential activity throughout the software lifecycle. We should considerthe implications of design decisions for ease of testing.
Promote reuse
Enterprise software must fit into anorganization's long term strategy. Thus it's important to foster reuse, so thatcode duplication is minimized (within and across projects) and investmentleveraged to the full. Code reuse usually results from good OO design practice,while we should also consistently use valuable infrastructure provided by theapplication server where it simplifies application code.
Support for multiple client types
There'san implicit assumption that J2EE applications always need to support multipleJ2EE-technology client types, such as web applications, standalone Java GUIsusing Swing or other windowing systems or Java applets. However, such supportis often unnecessary, as "thin" web interfaces are being more andmore widely used, even for applications intended for use within an organization(ease of deployment is one of the major reasons for this).
Portability
How important is portability between resources,such as databases used by a J2EE application? How important is portabilitybetween application servers? Portability is not an automatic goal of J2EEapplications. It's a business requirement of some applications, which J2EEhelps us to achieve.
Both Itx Corp & Jignesh are contributors for EditorialToday. The above articles have been edited for relevancy and timeliness. All write-ups, reviews, tips and guides published by EditorialToday.com and its partners or affiliates are for informational purposes only. They should not be used for any legal or any other type of advice. We do not endorse any author, contributor, writer or article posted by our team.
Itx Corp has sinced written about articles on various topics from The Internet, Architecture and Bathroom Home Improvement. About ITX Corp:ITX Corp is a business consulting and technology solutions firm focused in nine practice areas including Business Performance, Internet Marketing, IT Staffing, IT Solution Strategies and Implementation, Technical Services, Inter. Itx Corp's top article generates over 22200 views. to your Favourites.
Jignesh has sinced written about articles on various topics from Architecture, Investments and Software. http://www.spec-india.com is a Custom Software Application Development and Software Solution Company based in Ahmedabad, India. Our Services includes Mobile, Custom Software Development, Java Application Development, Mobile Framework Application, .Net Dev. Jignesh's top article generates over 880 views. to your Favourites.
Aesthetic And Restorative Dentistry So, if youre suffering from any of the problems described dont hesitate to visit a good restorative dentist