Terminology
This chapter serves as a quick reference to terminology related to Web services, service-oriented architecture (SOA), or cloud computing. For those entries that have related examples or more information in this book, there is a page reference to where you can find the additional information.
Since this is a dynamic area, new and revised technologies and concepts will be occurring regularly. If you cannot find what you need here, go to http://www.service-architecture.com/.
Adapters allow Web services connections with internally developed systems or packaged software, usually with an enterprise service bus (ESB). There can also be adapters between Web services and CORBA or DCOM. See page 63.
Agents are active entities that work with Web services. On a relatively simple side, there are agents that can help us shop online. More sophisticated agents would be able to perform negotiations, monitor the status of systems, or monitor changes in the content of databases or other systems. These agents could communicate with each other or with other systems internal or external to the organization using Web services. The virtual personal assistant mentioned throughout this book is an agent.
Analytics is the discovery of patterns in data. See also Business Intelligence (BI).
API provides a means for software components to communicate with each other. In the context of SOAs, these APIs use Web services, such as SOAP, REST, and JSON. See page 39.
An application server is a component-based product that resides in the middle tier of an architecture. It provides middleware services for security and state maintenance, along with data access and persistence. See page 153.
An atomic service is a well-defined, self-contained function that does not depend on the context or state of other services. See page 31.
Big data is data that requires some capacity that is beyond that of a traditional database system. There may be too much data (sometimes referred to as volume of data). The data is created at a very high speed (sometimes referred to as velocity of data). The data may be unstructured and there may be various types of structured and unstructured data—audio, video, sensor feeds, unstructured text, and so on (sometimes referred to as variety of data).
BI software is a broad area covering data mining, pattern finding, reporting, and event detection among other possible functions. Often, BI is used with data warehouses and big data stores, but that is not a mandatory requirement.
BPEL defines a notation for specifying business process behavior based on Web services. Business processes can be described in two ways:
Executable business processes model actual behavior of a participant in a business interaction.
Business protocols, in contrast, use process descriptions that specify the mutually visible message exchange behavior of each of the parties involved in the protocol without revealing their internal behavior. The process descriptions for business protocols are called abstract processes.
BPEL is used to model the behavior of both executable and abstract processes. The scope includes:
Sequencing of process activities, especially Web service interactions
Correlation of messages and process instances
Recovery behavior in case of failures and exceptional conditions
Bilateral Web service-based relationships between process rolesnBusiness Process Execution Language for web services (BPEL4WS)
The BPMN specification provides a graphical notation for expressing business processes in a business process diagram (BPD). The BPMN specification also provides a binding between the notation’s graphical elements and the constructs of block-structured process execution languages, including BPML and BPEL.
BPQL is a management interface to a business process management infrastructure that includes a process execution facility (process server) and a process deployment facility (process repository).
BPSS is a standard framework by which business systems may be configured to support execution of business collaborations consisting of business transactions. It is based on prior UN/CEFACT work, specifically the meta model behind the UN/CEFACT Modeling Methodology (UMM) defined in the N090R9.1 specification. The specification schema supports the specification of business transactions and the choreography of business transactions into business collaborations. These patterns determine the actual exchange of business documents and business signals between the partners to achieve the required electronic commerce transaction.
Caching is the retention of data to minimize network traffic flow and/or disk access. See page 153.
Cloud and cloud computing are terms likely inspired by the use of clouds in diagrams to represent the Internet. Originally, cloud was a marketing term, but it has gained wide use because it provides a sense of how services, etc. are “out there,” somewhere on the Internet or more locally on an organization’s intranet. See page 35.
CPP/A provides interoperability between two parties even though they may use application software and runtime support software from different vendors. CPP defines message-exchange capabilities and the business collaborations that it supports. CPA defines the way two parties will interact in performing the chosen business collaboration.
A community cloud is more restricted than a public cloud. The restriction is to a “community.” The restriction could be based on an industry segment, by general interest, or by whatever way a group might be defined. These clouds could be multitenanted. The underlying data center might be provided by a third party or by one member of the community. See page 41.
A composite service is created by combining services. Composite services are built using an SOA. See page 31.
CORBA is the acronym for Common Object Request Broker Architecture. It was developed under the auspices of the Object Management Group (OMG). It is middleware. A CORBA-based program from any vendor on almost any computer, operating system, programming language, and network, can interoperate with a CORBA-based program from the same or another vendor on almost any other computer, operating system, programming language, and network.
The first SOA for many people in the past was with the use of object request brokers (ORBs) based on the CORBA specification. The CORBA specification is responsible for really increasing the awareness of SOAs. See page 57.
Data cleansing is changes made to improve data quality. For existing data being loaded into a data mart or data warehouse, extract, transform, and load (ETL) software could be used to improve the quality of the data. See page 61.
A data warehouse often refers to combining data from many different sources across an enterprise. It is also referred to as enterprise data warehouse (EDW). The development of data warehouses usually involves ETL software. See page 138.
DCOM is the acronym for Distributed Component Object Model, an extension of Component Object Model (COM). DCOM was introduced in 1996 and is designed for use across multiple network transports, including Internet protocols such as HTTP. DCOM is based on the Open Software Foundation’s DCE-RPC spec and will work with both Java applets and ActiveX components through its use of the COM. It works primarily with Microsoft Windows. See page 57.
The ebXML registry is similar to UDDI in that it allows businesses to find one another, to define trading-partner agreements, and to exchange XML messages in support of business operations. The goal is to allow all these activities to be performed automatically, without human intervention, over the Internet. The ebXML architecture has many similarities to SOAP/WSDL/UDDI, and some convergence is taking place with the adoption of SOAP in the ebXML transport specification. RosettaNet also announced its adoption of the ebXML transport. The ebXML messaging specification is based on SOAP with attachments but does not use WSDL. ebXML does add security, guaranteed messaging, and compliance with business process interaction specifications.
The ebXML initiative is sponsored by the United Nations Center for Trade Facilitation and Electronic Business (UN/CEFACT) and OASIS to research, develop, and promote global standards for the use of XML to facilitate the exchange of electronic business data. A major goal for ebXML is to produce standards that serve the same or similar purpose as EDI, including support for emerging industry-specific XML vocabularies. ebXML and Web services hold the promise of realizing the original goals of EDI, making it simpler and easier to exchange electronic documents over the Internet.
EDI began as early as the late 1960s. Over the years, there have been significant efforts to establish standards for EDI. Two significant standards efforts are in the INCITS (ANSI) ASC X12 committee and UN/EDIFACT (United Nations/Electronic Data Interchange for Administration, Commerce, and Transport). These standards groups are also working with the ebXML and RosettaNet groups.
An ESB is software that makes it easier to transfer data and instructions among various software systems: services, business processes, applications, legacy systems, software agents, BI software, and so on. See page 62.
XACML provides fine-grained control of authorized activities, the effect of characteristics of the access requestor, the protocol over which the request is made, authorization based on classes of activities, and content introspection.
XrML is a digital rights language designed for securely specifying and managing rights and conditions associated with various resources including digital content as well as services.
XSL is a language for expressing stylesheets. It consists of three parts: XSL Transformations (XSLT), a language for transforming XML documents; the XML Path Language (XPath), an expression language used by XSLT to access or refer to parts of an XML document (XPath is also used by the XLink specification); and XSL Formatting Objects (XSLFO), an XML vocabulary for specifying formatting semantics. An XSL stylesheet specifies the presentation of a class of XML documents by describing how an instance of the class is transformed into an XML document that uses the formatting vocabulary.
ETL products are used to migrate data from one source to some destination, usually a database. The source can be a database or most any other source. The “extract” part is to select data from the source, “transform” reformats and possibly corrects the extracted data, and “load” places the transformed data into the destination database. See also Data Warehouse and data mart in this guide. See page 139.
Failover is the process of a secondary machine taking over for a primary machine. For database failover, see Replication in this guide. See page 167.
HTTP stands for HyperText Transfer Protocol. It is a mechanism for sending requests and responses between computers connected to the Internet or an intranet.
A hybrid cloud is a combination of public clouds, community clouds, private clouds, and virtual private clouds. See page 42.
Cloud providers in the IaaS category provide an infrastructure that contains the physical and virtual resources used to build the cloud. These cloud providers provision and manage the physical processing, storage, networking, and hosting environment. This is the data center or, in some cases, the data centers. Pricing is often based on resources used. See page 42.
IIOP is the protocol used for communication between CORBA ORBs. See also CORBA in this guide.
JAXP allows developers to easily use XML parsers in their applications.
JSON (JavaScript Object Notation) uses name/value pairs instead of the tags used by XML. See page 28.
Load leveling is a design strategy that spreads activity or load across more than one machine. See page 168.
Loosely coupled is a design concept where the internal workings of one service are not “known” to another service. All that needs to be known is the external behavior of the service. This way, the underlying programming of a service can be modified and, as long as external behavior has not changed, anything that uses that service continues to function as expected. See page 31.
Mapping is the technique used to make one or more rows in database tables appear as programming language objects or XML. See www.service-architecture.com.
A combination of data from multiple services using Web services APIs with the intent of making the data more useful or easier to visualize. See also Application Programming Interface (API) in this guide.
Message routers direct data from a requesting resource to a responding resource and back. These are also known as application brokers or message brokers. A router “knows” which of the other internal systems needs to receive certain types of updates. The individual internal systems can pass updates to a router and would not need to know who receives such updates. A message router usually needs to transform the data in some way to match the format of the data expected by the receiving system. See page 62.
The MOF is a set of standard interfaces that can be used to define and manipulate a set of interoperable meta-models and their corresponding models.
Middleware hides the complexity of the communication between two or more systems or services. This simplifies the development of those systems and services and isolates the complexity of the communication between them. The different systems or services can be on the same hardware or on different hardware. See page 57 and 151.
MDA is an open, vendor-neutral approach to interoperability using OMG’s modeling specifications: Unified Modeling Language (UML), Meta-Object Facility (MOF), and Common Warehouse Metamodel (CWM).
Microsoft .NET is a set of Microsoft software technologies for Web services. Microsoft .NET is made up of three core components:
NoSQL database management systems are generally meant to work with big data. NoSQL is usually defined as “not only SQL.” They may have different locking and concurrency models compared to traditional database management systems. See also Big Data in this guide. See page 74.
The ORB is middleware that uses the CORBA specification. See also CORBA in this guide. See page 57.
The IDL permits interfaces to objects to be defined independent of an object’s implementation. After defining an interface in IDL, the interface definition is used as input to an IDL compiler that produces output to be compiled and linked with an object implementation and its clients. See also CORBA. (There are other uses of the IDL initialism. For example, there is also a Java IDL.)
A PIP defines business processes between trading partners. PIPs fit into seven clusters, or groups of core business processes, that represent the backbone of the trading network. Each cluster is broken down into segments—cross-enterprise processes involving more than one type of trading partner. Within each segment are individual PIPs. PIPs are specialized system-to-system XML-based dialogs. Each PIP specification includes a business document with the vocabulary and a business process with the choreography of the message dialog.
Cloud providers in the PaaS category provide a complete computing platform. They provision and manage cloud infrastructure as well as provide development, deployment, and administration tools. Here you will find the features that make a platform: operating systems, web servers, programming language, database management systems, and so on. This is where the provider might provide elasticity: the ability to scale up or scale down as needed. See page 42.
A public cloud allows multiple organizations to provide multiple types of services (often referred to as multitenancy). The location for the underlying data center could be most anywhere in the world (often referred to as location independence). The underlying hardware is usually chosen by the cloud provider and not the users of the service (here you will likely find virtualization and device independence). The public cloud can also be described as an external cloud when viewed from within a given organization. See page 41.
A registry is a network service that identifies resources on a network and makes them accessible to users and applications. For Web services, directories could use UDDI or the ebXML directory. For an example, See page 20.
RELAX is a specification for describing XML-based languages. It is standardized by INSTAC XML SWG of Japan. Under the auspices of the Japanese Standard Association (JSA), this committee develops Japanese national standards for XML. See also RELAX NG.
The purpose of this committee is to create a specification for a schema language for XML based on TREX and RELAX. The key features of RELAX NG are that it does not change the information set of an XML document and supports XML namespaces, unordered content, and mixed content.
Replication is the process of making multiple copies of data on separate machines. The replicated data will be available on the secondary machine should it need to take over when the primary machine fails. See page 168.
Representational state transfer (REST) is a style of architecture based on a set of principles that describe how networked resources are defined and addressed. REST is an alternative to the World Wide Web Consortium’s (W3C) set of standards that include SOAP and other WS-* specifications. REST has proved to be a popular choice for implementing Web services. See page 22.
RDF is a way of describing a Web site’s metadata, or the data about the data at the site.
RNIF provides the packaging, routing, and transport of RosettaNet PIP messages and business signals.
Schematron is a language and toolkit for making assertions about patterns found in XML documents. It can be used as a friendly validation language and for automatically generating external annotation (links, RDF, perhaps topic maps). Because it uses paths rather than grammars, it can be used to assert constraints that cannot be expressed using XML schemas.
SAML is an XML framework for exchanging authentication and authorization information.
A service is a function that is well-defined, self-contained, and does not depend on the context or state of other services. See page 17.
An SOA is essentially a collection of services. These services communicate with each other. The communication can involve either simple data passing or two or more services coordinating some activity. See page 17.
SPML is an XML-based framework specification for exchanging user, resource, and service-provisioning information. The SPML specification is being developed with consideration of the following provisioning-related specifications: Active Digital Profile (ADPr), eXtensible Resource Provisioning Management (XRPM), and Information Technology Markup Language (ITML).
SOAP provides the envelope for sending Web services messages over the Internet/intranet. The envelope contains two parts:
1. An optional header providing information on authentication, encoding of data, or how a recipient of a SOAP message should process the message.
2. The body that contains the message. These messages can be defined using the WSDL specification.
SOAP commonly uses HTTP, but other protocols such as Simple Mail Transfer Protocol (SMTP) may be used. SOAP can be used to exchange complete documents or to call a remote procedure. (SOAP at one time stood for Simple Object Access Protocol. Now the letters in the acronym have no particular meaning.) See page 20.
Cloud providers in the SaaS category provide complete software systems. SaaS is a common way to provide applications such as email, calendars, customer relationship management, social networks, content management, documentation management, and other office productivity applications. SaaS is also known as “on-demand software.” See page 42.
TREX is a language for validating XML documents. TREX has been merged with RELAX to create RELAX NG. All future development of TREX will take place as part of the RELAX NG effort. See also RELAX NG.
The UML is a specification of a graphical language used for visualizing, specifying, constructing, and documenting the artifacts of distributed object systems.
URIs, also known as URLs, are short strings that identify resources on the Web: documents, images, downloadable files, services, electronic mailboxes, and other resources.
A universal data model is a template or generic data model that can be used as a building block for the development of a data model. See page 108.
UDDI provides the definition of a set of services supporting the description and discovery of (1) businesses, organizations, and other Web services providers, (2) the Web services they make available, and (3) the technical interfaces that may be used to access those services. The idea is to “discover” organizations and the services that organizations offer, much like using a phone book or dialing information. See page 19.
Cloud providers in this category provide some type of partitioning to ensure that the private cloud remains private. Typically, a virtual private cloud provider allows the definition of a network similar to a traditional network. Within such a network, it is possible to have systems such as database managements systems, BI/analytics systems, application servers, and so on. See page 42.
WDDX is an XML-based technology that enables the exchange of complex data between Web programming languages. WDDX consists of a language-independent representation of data based on XML and a set of modules for a wide variety of languages that use WDDX.
WSEL is an XML format for the description of non-operational characteristics of service endpoints, like quality-of-service, cost, or security properties.
The Web services component model is an XML- and Web-services centric component model for interactive Web applications. The designs must achieve two main goals: enable businesses to distribute web applications through multiple revenue channels and enable new services or applications to be created by leveraging existing applications across the Web.
The WSCL allows the business-level conversations or public processes supported by a Web service to be defined. WSCL specifies the XML documents being exchanged and the allowed sequencing of these document exchanges. WSCL conversation definitions are themselves XML documents and can therefore be interpreted by Web services infrastructures and development tools.
WSDL is a format for describing a Web services interface. It is a way to describe services and how they should be bound to specific network addresses. WSDL has three parts:
Definitions are generally expressed in XML and include both data type definitions and message definitions that use the data type definitions. These definitions are usually based on some agreed upon XML vocabulary. See page 19.
The WSXL enables businesses to distribute Web applications through multiple revenue channels and to enable new services or applications to be created by leveraging existing applications across the Web. WSXL is built on widely accepted established and emerging open standards and is designed to be independent of execution platform, browser, and presentation markup. Interactive Web applications that are developed using WSXL can be delivered to end users through a diversity of deployment channels: directly to a browser, indirectly through a portal, or by embedding into a third party Web application.
The WSFL is a language for the description of Web services compositions. WSFL considers two types of Web services compositions:
1. The appropriate usage pattern of a collection of Web services, in such a way that the resulting composition describes how to achieve a particular business goal; typically, the result is a description of a business process
2. The interaction pattern of a collection of Web services; in this case, the result is a description of the overall partner interactions
WSIA is an XML- and Web-services centric framework for interactive Web applications. The designs must achieve two main goals: enable businesses to distribute Web applications through multiple revenue channels and enable new services or applications to be created by leveraging existing applications across the Web.
WSRP is an XML and Web-services standard that will allow for the plug-and-play of portals, other intermediary Web applications that aggregate content, and applications from disparate sources. These portals will be designed to enable businesses to provide content or applications in a form that does not require any manual content or application-specific adaptation by consuming applications.
WSUI enables Web platforms implemented in entirely different languages (Java, COM/.NET, and Perl) to interoperate and share applications. By using WSUI, an application can be packaged with a WSUI descriptor file and an XSLT stylesheet and be dynamically integrated into another website that is running a WSUI container implementation.
Workflow refers to how two or more business processes or services might interact. See page 115.
XLANG is a notation for the automation of business processes based on Web services for the specification of message exchange behavior among participating Web services. XLANG is expected to serve as the basis for automated protocol engines that can track the state of process instances and help enforce protocol correctness in message flows.
XCBF is a common set of secure XML encoding for the formats specified in CBEFF, the Common Biometric Exchange File Format.
XML encryption is a process for encrypting/decrypting digital content (including XML documents and portions thereof) and an XML syntax used to represent the encrypted content and information that enables an intended recipient to decrypt it.
XKMS is a specification of XML application/protocol that allows a simple client to obtain key information (values, certificates, and management or trust data) from a Web service.
XLink allows elements to be inserted into XML documents to create and describe links between resources. It uses XML syntax to create structures that can describe the simple unidirectional hyperlinks of HTML, as well as more sophisticated links.
An XML namespaces is a collection of names, identified by a URI, which are used in XML documents as element types and attribute names. XML namespaces differ from the “namespaces” conventionally used in computing disciplines in that the XML version has internal structure and is not, mathematically speaking, a set.
XPath is the result of an effort to provide a common syntax and semantics for functionality shared between XSL Transformations and XPointer. The primary purpose of XPath is to address parts of an XML document.
XPointer allows addressing the internal structures of XML documents. It allows for examination of a hierarchical document structure and choice of its internal parts based on various properties, such as element types, attribute values, character content, and relative position.
XMLP provides simple protocols that can be ubiquitously deployed and easily programmed through scripting languages, XML tools, interactive Web development tools, etc. The goal is a layered system that will directly meet the needs of applications with simple interfaces (e.g., getStockQuote or validateCreditCard) and can be incrementally extended to provide the security, scalability, and robustness required for more complex application interfaces.
XML schemas express shared vocabularies and allow machines to carry out rules made by people. They provide a means for defining the structure, content, and semantics of XML documents.
XML Signature is an XML syntax used for representing signatures on digital content and procedures for computing and verifying such signatures. Signatures provide for data integrity and authentication.
XSL-FO is a set of tools developers and web designers use to specify the vocabulary and semantics for paginated presentation.
XSLT is a language for transforming XML documents into other XML documents. XSLT is designed for use as part of XSL, which is a stylesheet language for XML. In addition to XSLT, XSL includes an XML vocabulary for specifying formatting. XSL specifies the styling of an XML document by using XSLT to describe how the document is transformed into another XML document that uses the formatting vocabulary. XSLT may be used independently of XSL. However, XSLT is not intended as a completely general-purpose XML transformation language. Rather it is designed primarily for the kinds of transformations that are needed when XSLT is used as part of XSL.
XQuery is designed to be a language in which queries are concise and easily understood. It is also flexible enough to query a broad spectrum of XML information sources, including both databases and documents.