Activity 2-unit 2-update 2024. English translation
Open standards for enterprise applications
1. UNIT 3 - Open Standards for Enterprise
Applications
1. Introduction to Enterprise Applications
1.1 What is an Enterprise?
The traditional meaning of an enterprise is any company organized for commercial purposes. In that sense, GM, Bank of America
and Wal-Mart are all enterprises, as are the Snappy Service Delicatessen, Yvette's French Maids, and Bob & Dave's Barbershop
("Two Chairs, No Waiting").
However, in the IT (Information Technology) world, the term "enterprise" has a different meaning, and the meaning, is often fuzzy. In
an attempt to give clarity to an important term, let us look at the following definition.
An enterprise is any organization — commercial or not — that has the following four characteristics:
Size and location:
An enterprise is a very large organization, often widely distributed with hundreds to tens of thousands of locations.
Management:
An enterprise is organized into divisions or departments, and managed by a large hierarchy, not by a single person or group of
people. The hierarchy provides for the short-term and long-term needs of the enterprise, thereby ensuring the continued existence
of the organization. With respect to computing, the IT needs of an enterprise are so complex as to be beyond the total
understanding of any single person. Thus, they must be managed by a sophisticated combination of human workers and automated
systems.
Software:
All businesses require the software necessary to administer an organization: accounting, payroll, email, office tools, Web services,
backups, and so on. However, an enterprise requires more. First, the administrative software must operate on a very large scale.
Second, there are needs that are unique to extremely large organizations. For example, there must be software to support the
processing of massive amounts of data (often terabytes per day), data warehousing, data mining, highly distributed transaction
processing, wide-area networking, and IT management, as well as data distribution to customers, suppliers, employees, the media,
and the general public.
Hardware:
An enterprise requires large, complicated, inter-connected computing systems that will not fail, degrade or interfere with one
another. Because of the enormous expense, such systems must be designed and managed to run efficiently. Moreover, they must
be upgraded on a regular basis.
Having defined an enterprise in this way, we can see that any sufficiently large organization qualifies: not only companies, but
governments, universities, and large social organizations. (What do GM, Bank of America, Wal-Mart, UCLA, the Vatican, the Red
Cross, and the Mormon Church all has in common?)
1.2 Enterprise Application Software
Enterprise software, also known as enterprise application software (EAS), is software used in organizations, such as in a business
or government, contrary to software chosen by individuals (for example, retail software). Enterprise software is an integral part of a
(computer based) Information System.
Services provided by enterprise software are typically business-oriented tools such as online shopping and online payment
processing, interactive product catalogue, automated billing systems, security, enterprise content management, IT service
2. management, customer relationship management, enterprise resource planning, business intelligence, human resource
management, manufacturing, enterprise application integration, and enterprise forms automation.
As enterprises have similar departments and systems in common, enterprise software is often available as a suite of customizable
programs. Generally, the complexity of these tools requires specialist capabilities and specific knowledge.
Enterprise software describes a collection of computer programs with common business applications, tools for modelling how the
entire organization works, and development tools for building applications unique to the organization. The software is intended to
solve an enterprise-wide problem, rather than a departmental problem. Enterprise level software aims to improve the enterprise's
productivity and efficiency by providing business logic support functionality.
According to Martin Fowler, "Enterprise applications are about the display, manipulation, and storage of large amounts of often
complex data and the support or automation of business processes with that data."
Although there is no single, widely accepted list of enterprise software characteristics, they generally include performance,
scalability, and robustness. Furthermore, enterprise software typically has interfaces to other enterprise software (for example LDAP
to directory services) and is centrally managed (a single admin page, for example).
Enterprise application software performs business functions such as order processing, procurement, production scheduling,
customer information management, energy management, and accounting. It is typically hosted on servers and provides
simultaneous services to a large number of users, typically over a computer network. This is in contrast to a single-user application
that is executed on a user's personal computer and serves only one user at a time.
Enterprise software is often categorized by the business function that it automates, such as accounting software or sales force
automation software. Similarly for industries, there are enterprise systems devised for the health care and insurance industry, retail
industry, or for manufacturing enterprises.
Major organizations in the enterprise software field include SAP, IFS AB, QAD Inc, IBM, BMC Software, HP Software Division,
Redwood Software, UC4 Software, Red Hat, Microsoft, Adobe Systems, Oracle Corporation, InfoSys Limited, CA Technologies,
Wipro Technologies, and ASG Software Solutions but there are thousands of competing vendors.
3. 2. Open standards and Enterprise Applications
Open standards rely on a broadly consultative and inclusive group including representatives from vendors, academicians and others
holding a stake in the development. That discusses and debates the technical and economic merits, demerits and feasibility of a
proposed common protocol. After the doubts and reservations of all members are addressed, the resulting common document is
endorsed as a common standard. This document is subsequently released to the public, and henceforth becomes an open
standard. It is usually published and is available freely or at a nominal cost to any and all comers, with no further encumbrances.
Various vendors and individuals (even those who were not part of the original group) can use the standards document to make
products that implement the common protocol defined in the standard, and are thus interoperable by design, with no specific liability
or advantage for any customer for choosing one product over another on the basis of standardized features. The vendors' products
compete on the quality of their implementation, user interface, ease of use, performance, price, and a host of other factors, while
keeping the customers’ data intact and transferable even if he chooses to switch to another competing product for business
reasons.
None of the enterprise applications are developed in tandem, and have different data structures designed to meet different business
needs. So integration is required for tying together separate enterprise applications and lot of work may be required for two
enterprise applications to integrate successfully. The software and data have to be made to work together without any slippage or
miscommunication. To accomplish this we require an agreement about how the transaction or data exchange will be accomplished.
The answer is Open standard, to ensure that competing products work together. It becomes easier as more companies adopt an
open industry standard, to communicate, without the need for costly customized data interchanges.
On the other hand, proprietary standard is normally owned by a corporation, its internals cannot be inspected, its users must license
it, and the owner of the standard can change it at will. Companies that purchased enterprise software systems adjusted to the data
standard of that system for all its functions. Although, companies were not really locked-in, data exchange or migration was
cumbersome and costly. Hence assessment of software solution became an extension of already available solutions, instead of a
true evaluation to identify the best solution available in the market.
Open standards enable different software systems to share data with relative ease. Data migration no longer needs to be the key
driver for decisions on system choices. Single vendor solutions no longer keep their corporate customers tied to them because of
apprehension about proprietary data formats, data transfer and integration. The viable options include large vendors alongside
specialized offerings from best-of-breed solution providers. The true decision can then be made on benefits coming from
functionalities and not from fear of heterogeneous dataflow.
The keys to success in the future are universally agreed-upon open standards such as to increase the speed and reliability of
integration. Organizations & departments are free to choose the best of breed solutions that best meets their needs and align with
their corporate goals and vision, unencumbered by concerns about data integrity and integration into broad enterprise-wide
systems.
Today's enterprises need flexible, open information systems. Most enterprises must cope with a wide range of technologies,
operating systems, hardware platforms,and programming languages. Each of these is good at some important business task; all of
them must work together for the business to function.
3. Enterprise Application Integration (EAI)
EAI is defined as the use of software and computer systems architectural principles to integrate a set of enterprise computer
applications.
Supply chain management applications (for managing inventory and shipping), customer relationship management applications (for
managing current and potential customers), business intelligence applications (for finding patterns from existing data from
operations), and other types of applications (for managing data such as human resources data, health care, internal
communications, etc.) typically cannot communicate with one another in order to share data or business rules. For this reason, such
applications are sometimes referred to as islands of automation or information silos. This lack of communication leads to
inefficiencies, wherein identical data are stored in multiple locations, or straightforward processes are unable to be automated.
Enterprise application integration (EAI) is the process of linking such applications within a single organization together in order to
simplify and automate business processes to the greatest extent possible, while at the same time avoiding having to make sweeping
4. changes to the existing applications or data structures. In the words of the Gartner Group, EAI is the “unrestricted sharing of data
and business processes among any connected application or data sources in the enterprise.
Big challenge of EAI is that the various systems that need to be linked together often reside on different operating systems, use
different database solutions and different computer languages, and in some cases are legacy systems that are no longer supported
by the vendor who originally created them. In some cases, such systems are dubbed "stovepipe systems" because they consist of
components that have been jammed together in a way that makes it very hard to modify them in any way.
However, to gain the benefits of this kind of distributed, modular system, an organization must implement technologies that deal with
the problems presented by this architecture:
. Interoperability: the various components of the infrastructure may use different operating systems, data formats, and
languages, preventing connection via a standard interface.
Data integration: in order for a modular, distributed system to be functional, a standard method of handling the flow of data
between applications and systems to enforce consistency across the database is crucial.
Robustness, Stability, and Scalability: Because they are the glue that holds together a modular infrastructure, integration
solutions must be highly robust, stable, and scalable.
3.1 Open standards & Application Integration
Open standards and application integration are natural allies since open standards support in solving the application integration
problem, due to the differences in formats and interfaces through common mechanisms that everyone can understand. However,
those working to resolve the application integration problem should understand the objectives and evolution of open standards.
Standards could be divided into 3 categories in the area of application integration: service standards, format standards and
orchestration standards.
5. Service standards, including Web services, seem new but in fact are very old. Early attempts at standardizing service-oriented
interfaces, such as OMG's CORBA and Microsoft's COM, have a long history in the world of IT. They both have attempted to
provide access to program services that exist on remote computers without the need to understand any of the low-level details such
as location, APIs, etc. Instead, they placed a common interface layer on top of the native services, allowing remote programs to both
discover and invoke these services.
By leveraging common Web protocols, Web services seem to be getting more traction than their predecessors. Web services also
deliver a lot to the application integration world as well, providing common interfaces and protocols which allow standard-based
communication and service invocation from machine to machine, either local or over the Internet. Web services are interesting
technologies for the world of inter and intra company application integration, moving beyond the simple exchange of information,
(the dominating mechanism for application integration today) to the concept of access application services that are encapsulated
within old and new applications. This means we can not only move information from application to application but also create
composite applications, leveraging any number of back-end application services found in any number of applications, local or
remote.
Format standards are those standards that define a common way of formatting information so that it is understood as it is being
shipped from application to application. EDI, XML and SOAP (messaging) are examples of format standard with XML leading the
charge as the dial tone for application integration in many problem domains.
Format standards are not as complex as service standards; the only requirement is that both the source application and target
application are able to understand each other. XML is particularly helpful.
Orchestration standards, such as BPEL4WS, layer a set of easily defined and centrally managed processes on top of existing sets
of processes/services contained within a set of enterprise applications, intra- or inter-organization.
We can think of orchestration as the science and mechanism of managing the movement of data and the invocation of services in
the correct and proper order to support the management and execution of common processes that exist in and between
applications. Orchestration provides another layer of easily defined and centrally managed processes that exist on top of an existing
set of processes and data contained within a set of applications.
The goal is to bring together relevant processes found in an enterprise or trading community to obtain the maximum amount of
value, while supporting the flow of information and control logic between these processes. These products view the middleware, or
the plumbing, as a commodity and provide easy-to-use visual interfaces for binding these processes together.
4. Approaches in Leveraging Open Standards
Application integration is innate to almost all business system development. Applications can no longer exist as standalone entities,
but instead must share information with other information systems, inside and outside the corporations. Indeed, we've been moving
closer to a well-integrated enterprise and (in some instances) supply chain that provides most information systems with access to
information from other applications when needed, and in real time. We can call this information-oriented application integration. This
is the most popular way of doing application integration today, and it leverages format standards such as the ones listed above.
However, as we're getting better at real time information exchange between systems, the trend has been to view application
integration at a higher level of abstraction, or through business processes or services. This approach allows those exchanging
information between various applications to view the information flow in the context of a business model, or business processes that
define business logic, sequence, sub-processes, hierarchies of processes, etc. In other words, the ability to control application
integration through abstract business process automation abstractions that also accounts for lower level mechanisms such as
transformation and intelligent routing. We can call this orchestration-oriented application integration.
While information-oriented and orchestration-oriented integration provides a functional solution for many application integration
problem domains, it is the integration of both application services and application methods that generally provides more value in the
long run, albeit at a cost.
As previously mentioned, this is not a new approach. We've been looking for mechanisms to bind applications together at the
service level for years, including frameworks, transactions and distributed objects, all in wide use today. However, the new notion of
Web services, such as Microsoft's .NET strategy, is picking up steam. We're attempting to identify a new mechanism that can better
6. leverage the power of the Internet to provide access to remote application services through a well-defined interface and directory
services. We can call this services-oriented application integration.
4.1 Web Services and Enterprise Application Integration
Large corporations often have many departments, each using applications and platforms that are best suited to the department’s
particular needs. Since most enterprise applications are designed to function independently, interdepartmental communication can
be difficult. Before a company can automate B2B transactions and conduct e-business with suppliers, partners and clients, the
company’s internal applications and business processes should be integrated.
A Web service is a method of communication between two electronic devices over the Web (Internet).
The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a
network". It has an interface described in a machine process-able format (specifically Web Services Description Language, known
by the acronym WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP
messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.
XML is used to tag the data, SOAP is used to transfer the data, WSDL is used for describing the services available and UDDI is
used for listing what services are available. Used primarily as a means for businesses to communicate with each other and with
clients, Web services allow organizations to communicate data without intimate knowledge of each other's IT systems behind the
firewall.
Unlike traditional client/server models, such as a Web server/Web page system, Web services do not provide the user with a GUI.
Web services instead share business logic, data and processes through a programmatic interface across a network. The
applications interface, not the users. Developers can then add the Web service to a GUI (such as a Web page or an executable
program) to offer specific functionality to users.
Web services allow different applications from different sources to communicate with each other without time-consuming custom
coding, and because all communication is in XML, Web services are not tied to any one operating system or programming
language. For example, Java can talk with Perl, Windows applications can talk with UNIX applications.
Over the last couple of years, Web services have expanded to become more popular with application developers — and for good
reason. Web services technology represents an important way for businesses to communicate with each other and with clients as
well. Unlike traditional client/server models, such as a Web server or Web page system, Web services do not provide the user with a
GUI. Instead, Web services share business logic, data and processes through a programmatic interface across a network. The
applications interface with each other, not with the users. Developers can then add the Web service to a GUI (such as a Web page
or an executable program) to offer specific functionality to users.
Web services' distributed computing model allows application-to-application communication. For example, one purchase-andordering application could communicate to an inventory application that specific items need to be reordered. Because of this level of
application integration, Web services have grown in popularity and are beginning to improve business processes. In fact, some even
call Web services the next evolution of the Web.
4.2 Web Services Technology
Web services are built on several technologies that work in conjunction with emerging standards to ensure security and
manageability, and to make certain that Web services can be combined to work independent of a vendor. The term Web
service describes a standardized way of integrating Web-based applications using the XML, SOAP, WSDL and UDDI open
standards over an Internet protocol backbone.
XML
Short for Extensible Markup Language, a specification developed by the W3C. XML is a pared-down version of SGML,
designed especially for Web documents. It allows designers to create their own customized tags, enabling the definition,
transmission, validation, and interpretation of data between applications and between organizations.
7. SOAP
Short for Simple Object Access Protocol, a lightweight XML-based messaging protocol used to encode the information in Web
service request and response messages before sending them over a network. SOAP messages are independent of any
operating system or protocol and may be transported using a variety of Internet protocols, including SMTP, MIME, and HTTP
WSDL
Short for Web Services Description Language, an XML-formatted language used to describe a Web service's capabilities as
collections of communication endpoints capable of exchanging messages. WSDL is an integral part of UDDI, an XML-based
worldwide business registry. WSDL is the language that UDDI uses. WSDL was developed jointly by Microsoft and IBM.
UDDI
Universal Description, Discovery and Integration. It is a Web-based distributed directory that enables businesses to list
themselves on the Internet and discover each other, similar to a traditional phone book's yellow and white pages
XML is used to tag the data, SOAP is used to transfer the data, WSDL is used for describing the services available and UDDI
is used for listing what services are available. Used primarily as a means for businesses to communicate with each other and
with clients, Web services allow organizations to communicate data without intimate knowledge of each other's IT systems
behind the firewall.
4.3 Who Is Using Web Services?
(Adapted from InternetNews.com)
Perhaps the best example of the growth of Web services is eBay. The online auction king has been aggressively developing its
Web services platform by extending application programming interfaces that essentially turn its Web site into a platform.
The auction site's developer section gives soup-to-nuts information about deploying its eBay API. "With the eBay API, you
communicate directly with the eBay database in XML format. By using the API, your application can provide a custom
interface, functionality and specialized operations not otherwise afforded by the eBay interface." Since 1999, eBay has offered
APIs and now offers more than 100 Web services calls available to developers to build applications that can connect to those
services. They include pricing information, buy-it-now features, and payment options through its PayPal subsidiary.
The growth and use of APIs across the Web illustrate how rapidly Web services are spreading, even as technical issues such
as security and authentication are worked out by standards bodies.
Online retailing giant Amazon.com is another example. Companies such as Microsoft and Sun Microsystems have been
helping developers build and deploy Web Services and clients for close to four years now. Sun's J2EE platform, for example,
is where developers build on the building blocks in order to access Amazon.com's selling platform.
4.4 Emerging Trends in Web Services — Mash-ups and Web 2.0
A breed of Web-based applications called mash-ups. Mash-ups mix at least two different services from disparate, and even
competing, Web sites. A mash-up, for example, could overlay traffic data from one source on the Internet over maps from
Yahoo, Microsoft, Google or any content provider. This capability to mix and match data and applications from multiple sources
into one dynamic entity is considered by many to represent the promise of the Web service standard.
WikiMap is just one of many examples of a mash-up. This Web site uses a Google Maps powered interface, to offer
information tailored to suit specific needs of a consumer. With so many businesses and software companies building services
8. on top of platforms, many expect to see the World Wide Web of today (called Web 1.0) transform into a full-fledged computing
platform serving Web applications. The term being used to refer to the World Wide Web as a platform is Web 2.0, where the
term refers to the "next version" of the World Wide Web. The difference between Web 1.0 and Web 2.0 can really be defined
by Web application services.
Side Bar
What does IBM “Websphere Application Server (WAS)” JavaTM 2 platform, Enterprise Edition (or J2EE) compliance mean?
It means the IBM Websphere Application Server is committed to supporting and driving open standards.
Open standards are the key to the IBM WebSphere strategy of creating a flexible, portable, easy-to-use application server. The
J2EE standard streamlines application development, and enables to create reusable, platform independent modules.
With J2EE applications could be developed independently, that can be deployed on any of the 30 platforms supported by
Websphere Application Server including IBM z/OS, Microsoft NT, Windows 2000, Sun Solaris, IBM AIX, HP-UX, and Linux
operating systems.
A services oriented architecture (or SOA) is not limited to a specific programming language or technology standard. J2EE,
.NET and other technologies can equally participate in an SOA.
Websphere Application Server’s edge is its foundation in open standards, which provides the ability to grow & flex as needed,
while reducing costs.
5. REFERENCES
http://www.ask.com/wiki/Enterprise_software
http://en.wikipedia.org/wiki/Enterprise_application_integration
http://en.wikipedia.org/wiki/Web_service
6. Disclaimer
The contents of this report reflect the views of the author and do not necessarily reflect the official views or policy of the
International Business Machines Corporation in the United States and/or other countries. This report does not constitute a
standard, specification or regulation.
IBM is a registered trademark of International Business Machines Corporation in the United States and/or other countries.
Other company, product, and service names may be trademarks or service marks of others.
Microsoft is a registered trademark of Microsoft Corporation