Enterprise computing, an umbrella term used mostly to sell business systems development products, traditionally refers to the mission-critical systems on which a business depends. It almost always includes a database. The word "enterprise" most certainly does not communicate or represent a determinate content, an identifiable meaning, or a describable value. Nowadays almost all the technology product aimed at the business customer are marketed with the tag - the buzzword "enterprise".
It becomes necessary to understand the word "enterprise" within the context of enterprise software. The term "enterprise" overshadows the idea of business taken wholistically. An enterprise solution identifies common problem domains within a business and provides a shared infrastructure as a solution for those identified problems. Take the case of running a bank, which has several branches in different places with different cultures. But these differences in cultures and locations won't come in the way of identifying the common ground realities, such as accounts and customers. Looking at this business from an enterprise perspective means abstracting away from irrelevant differences in the way the individual branches function, and instead approaching the business from their common things.
Applying this view to design and development of software, an enterprise system provides the proper abstractions for business concepts that remain constant across a business so that they may be shared by all the different units within the company. In this Internet age, enterprise systems even can share the business concepts with vendors, clients and perspective customers also apart from the company. Thus enterprise solution are in high demand among business houses in these days. Here comes a list of requirements for a true enterprise system.
In order to bring out solutions to enterprise problems, an enterprise system must exhibit certain characteristics. The primary goal of an enterprise system is simply to be able to represent business concepts to any possible user. The user may be an another application within the same business, an XML interface for the business clients or even vendors, or a Web interface for customers. An enterprise system emphasize on providing an appropriate window for each audience without duplicating the effort required to capture the rules of business. An enterprise system must therefore meet these following requirements:
An enterprise system must avoid incorporating proprietary components, that is, it must be platform- and database-independent. Business should not impose any sort of technical requirements on vendors, clients and customers. Also it helps to integrate new components into the system as technology evolves as days go by. It is not possible to integrate new technological advancements into closed, proprietary components.
An enterprise system must be capable of supporting personalized user experience that is being made possible in many forms, such as, internationalization, localization, accessibility, personalization and customization. These requirements become feasible by designing user interfaces which can display content tailored to the language and cultural norms of the user interacting with the system. This also means that developing client side supporting tools will enable users with disabilities to access software applications. Finally, an enterprise system needs to be able to study the way users interact with it so that it can better support each user's unique mode of interaction.
- An enterprise system must be the authoritative, shared source for the business concepts it represents. All applications using concepts common across the business should reference the objects that represent those concepts from the shared system. This means that any given concept has an authoritative location that is transparent to the client from which it can be referenced.
An enterprise contains many resources that can be accessed by many types of users. Sensitive information often has to traverse on unprotected open networks, such as the Internet. This open environment forces every enterprise to design the relevant security requirements, specific mechanisms and infrastructure to meet the real threat. Although the quality assurances and implementation details may vary, all enterprises have to share some or all of the following characteristics:
1. Authentication - The means by which communicating entities prove to one another that they are acting on behalf of specific identities.
2. Access Control for sensitive resources - The means by which interactions with vital resources are limited to collections of users or programs for the purpose of enforcing integrity, confidentiality, or availability constraints
3. Data Integrity - The means used to prove that information could not have tampered with by any third part. That is, a recipient of data sent over an open network must be able to check whether the data gets manipulated on its way.
4. Data Privacy - The means used to ensure that information is made available only to users who are authorized to access it.
5. Non-repudiation - The means used to prove that a user performed some transaction such that the user can not deny it later.
6. Auditing - The means used to capture a tamper-resistant record of security related events for the purpose of being able to evaluate the effectiveness of security policies and mechanisms.
Enterprise Computing by Java
The J2EE specification introduces the concept of enterprise applications. An enterprise application contain J2EE modules, which could be web applications, EJBs, application clients and applets. A J2EE Enterprise archive is packaged as a Java Archive file with a .ear filename extension.
The database is the heart of any enterprise system. The shared business objects that make up an enterprise need some way to make sure that they are saved across time. The database provides that storage mechanism. Any language that is going to claim to be an enterprise language therefore needs to have strong, reliable and robust database connectivity. Java fulfills this need by Java Database Connectivity (JDBC). This facility immensely helps to design and maintain a Web-based back-end database.
Towards enterprise computing, Java is really the only language in widespread use that can easily be used to build enterprise systems that meets the certain requirements in a robust and efficient manner. Java is a standards-based language. It has support for accessibility and internationalization and localization, including a Unicode basic character type, built into the language. Also Java has both database access and distributed computing at its core with a number of tested technologies.