Download the Application Domain Document doc format of Final ETRM 5.1 Application Domain

EnterpriseTechnical Reference Model - Version 5.1

Effective Date: November 18, 2011

Application Domain Table of Contents



 

4.1 Discipline: Design & Development
4.1.1 Technology Area: Development Model
4.1.2 Technology Area: Development Methodology

4.2 Discipline: Application Composition

4.2.1 Technology Area: Orchestration




ETRM Document Organization

The ETRM specifies standards, specifications and technologies for each layer or area of the Service Oriented Architecture. For ease of reference, each area and its various components are organized into the following building blocks:

  • Domains: Logical groupings of Disciplines that form the main building blocks within the technical architecture.
  • Disciplines: Logical functional areas addressed within each domain as part of the architecture documentation.
  • Technology Areas: Technical topics that are relevant to each Discipline
  • Technology Specifications: Sets of product standards, protocols, specifications or configurations associated with each Technology Area.


 

4. Domain: Application

Description

The Application Domain defines how service oriented applications are designed and developed. The Application Domain identifies open standards to facilitate rapid service oriented development, integration and implementation of new applications and business processes.

In addition to having well-defined SOA governance processes that identify and maintain high-quality service components, it is essential to have a standards-based service oriented development model (SODA), and development methodology that enables reuse of these components.

Developers must understand that the needs of service-oriented development are different from those of traditional and component-based applications. In service-oriented development, applications are developed from the start with Web Service standards based integration in mind. Design and development is done with multi-platform, inter-enterprise interoperability as a critical success factor.

SODA is the development paradigm for building applications supported by a Service Oriented Architecture. Using services as the primary unit of modularity requires a new approach that involves composing applications from sets of loosely integrated processes. This is an "assemble first" approach, rather than a "code first" approach used in traditional development. Code is necessary in a SODA world, but it is hidden behind the service interfaces. This means that consumers do not need to be as concerned with the structure or technology of the underlying program logic and platform. Many IT organizations assumed that building service-oriented applications was no different than building object-oriented or component-oriented systems for application development, but the following differences are critical:

  • How testing services must be done
  • How teams cooperate to deploy SOA systems
  • What roles must exist and how to ensure that reuse occurs
  • How to achieve effective service composition
  • How to govern orchestrated services

The terms “application” and “service” are often used interchangeably. When used in this document, these terms are defined as follows:

  • Application: A software program composed of multiple “services” which addresses a specific set of functional requirements, e.g. a Professional Licensing application, and is comprised of a finite number of modules or sub routines which perform discrete functions, e.g. accept application, renew application, change address, etc.
  • Service: A stand alone software module which performs a specific discrete function, e.g. Change Address, is accessible through standards based internet protocols, and can be combined with other services to create a service oriented application.

Strategic Importance

Service oriented applications enable a high level of system integration, reuse of components and rapid deployment in response to changing government and business requirements. The specifications included in the Application Domain foster service oriented application creation, integration and deployment, through the use of Web Service standards. This includes the enabling of legacy applications for Web Services. Important benefits include enhanced programmer productivity, improved return on existing IT assets and resources and a better integrated customer experience.

Related Trends

In addition to the emergence of the service oriented development of applications model, the following related trends have significant relevance to SOA:

  • Availability of open source solutions
  • Emergence of web service standards based development environments
  • Emergence of web service standards based deployment platforms
  • Federated approaches to security and systems management
  • Governments’ desire to eliminate silos of information and services
  • Homeland security motivated requirements for information integration
  • Government initiatives to reduce healthcare costs
  • Emergence of Web Service Registries as a mechanism for SOA governance
  • Emergence of Enterprise Service Buses to provide a much more intelligent IP network

Vision

Service oriented application design and development has great potential for more swiftly delivering to the Commonwealth more interoperable, reusable, and less-expensive software. Developer productivity will be enhanced through the use of SODA, which reduces the need to write new code and automates portal development, user interface design and even rapid application deployment. Automation will reduce application complexity and will make it possible for agency business analysts to make system changes without requiring programmers to modify system code. The use of enterprise Shared Services will provide economies of scale which result in reduced cost and time to implementation. Instead of running on separate tracks, application development and integration will converge in this model.

Roadmap

Current State

  • Object oriented, component oriented, client server, and mainframe development models are employed at the Commonwealth
  • Consistent development methodologies are rarely used
  • Silos of information and services exist
  • Agencies benefit from the availability of a limited number of Shared Services, such as:
    • Messaging: Enterprise Service Bus (See Integration Domain)
    • Portal: Content publishing and management (See Access Domain)

Target State

  • Service oriented development models (SODA) become widespread
  • The Unified Process (UP) is adopted as a standard methodology for application development
  • Legacy applications are Web Service enabled
  • Silos of information and services are greatly reduced
  • Agencies benefit from the availability of additional SOA Shared Services, such as:
    • Security: XML Gateways, Identity Management (see Security Domain)
    • Discovery: Web Services Registry (see Integration Domain)

Boundary

The ETRM Application Domain addresses specifications and best practices for service oriented application design, development and deployment:

  • Integration specifications and standards are defined in the ETRM Integration Domain.
  • Security specifications and standards are defined in the ETRM Security Domain.

Related Policies

Associated Disciplines

  • Design & Development
  • Application Composition



 

Application domain showing hierarchy of Disciplines and Technology areas as specified in the etrm.


Application >

4.1 Discipline: Design & Development

Description

Service oriented development for applications (SODA) offers a strategy for eliminating the time and expense associated with traditional systems integration. This model helps to make design, development and integration process convergence a reality for the Commonwealth. SODA, based on open standards, lets developers become systems integrators working on a standardized platform (ISE) with a systematic methodology for building composite SOA applications. This service oriented model is best implemented using:

  • An Integrated Design/Development Environment
  • A Standard Development Methodology

This approach promotes a common skill set within agencies; one that uses standards, as well as graphical models, for creating exposable business interfaces that abstract system implementation details.

To maximize ROI, all agency software development projects should consider leveraging enterprise Shared Services as they become available:

  • Messaging: Enterprise Service Bus (See ETRM Integration Domain)
  • Portal: Content publishing and management (See ETRM Access Domain)
  • Security: Identity Management (See ETRM Security Domain)
  • Publish/Discover: Web Services Registry (See ETRM Integration Domain)

Designing for application integration is the responsibility of SOA developers because the integration process should be planned from the inception of the system concepts. Focus on process is also emphasized in a SODA environment, as services are defined in a process model. This model describes the composition of services into a usable application (system process representation). It is composed of many micro models that represent the underlying business processes as services. Web services are made more adaptable through this model and through the subsequent use of rules, orchestration languages and parameterization. All of this is then controlled through the use of a registry/repository of components and services that is searchable. This repository represents the foundry of processes and may be populated from legacy "wrapped services," packaged application processes, data and unstructured content repositories, and newly created Web services.

Stakeholders/Roles

Designers, developers and implementers of Commonwealth web applications; enterprise application and data architects; business service architects and analysts; software developers and development service providers; data center infrastructure and operations planning.

Roadmap

Currently, service oriented development techniques are not widely utilized. Application development tasks and application integration tasks are handled separately and often sequentially. There is no uniform development model or methodology. In the target state, service oriented development becomes the norm. Integration starts with the initial application design and a consistent development methodology is used throughout the enterprise.

Enterprise Technology Solution

Not applicable

Relevant Standards Organizations

Additional information about the Standards Organizations listed below can be found in the Introduction section of the ETRM or by clicking on the hyperlink to the organization.

Associated Technology Areas

  • Development Model
  • Development Methodology

Application > Design & Development >

4.1.1 Technology Area: Development Model

Description

Component and Object-Oriented development models are relatively well known in the enterprise. Service Oriented Development of Applications (SODA) is the next evolutionary phase in development models, building on the principles of these prior models, and additionally unifying the functions of application development and systems integration through the use of Web Service standards. Following this SODA model, using Component Oriented design and SOA Shared Services, yields other important benefits for the Commonwealth:

  • Business logic is isolated in a separate layer that can exist well beyond the lifetime of any system using it, substantially increasing ROI and encouraging component reuse
  • Use of a Portal Shared Service provides users with a single point of access for all Commonwealth services. In addition, a consistent presentation layer greatly enhances the government application user experience.
  • Consistent service quality is derived from common standards and policies
  • Reusable services supply basic building blocks that speed the development of new applications
  • Run time service reuse only requires finding a service in the Registry and binding to it. This eliminates interoperability problems that typically impede code reuse, such as compiler versions, platforms and programming languages.
  • Service location transparency, where applications look up services in a shared Registry, improves code mobility because services can be moved to different machines, or to external providers
  • Support for multiple client types (on demand) with the same service, through layered application design, shared policies, and ESB Transformation Services, reduces development and maintenance costs while providing a more flexible user experience
  • Use of a shared Enterprise Service Bus (ESB) provides an assured delivery mechanism that eliminates the need for developers to code for potential network failures
  • Use of Security Shared Services eliminates the need for each application to perform authentications and maintain identity repositories

SODA designs include the following characteristics:

  • Service assembly and orchestration
  • Service registries and repositories
  • Service publish, search, discovery, bind and invoke
  • Standardized/published external interface specifications (XML schemas)
  • Late-late binding (allows programs to dynamically select which services are needed at runtime)
  • Federated identity and systems management
  • Any to any transformation services
  • Loosely coupled modules (message-oriented)

Services-oriented development subsumes object and component-oriented development because these lower-level concepts support the underlying mechanisms for building and deploying systems. Agencies can (and should) use objects or components to build services. Service Oriented Development of Application environments will continue to evolve and mature dramatically over the next few years, to fully support the elements of SODA that will be required to deliver applications based on service-oriented architectures. Developers should begin to look for the support of SODA's application development traits (modeling, orchestration etc.) within tools, as vendors incorporate them into products.

The successful creation of service-oriented applications requires:

  • Design for extensibility and reuse
  • Deciding which new functionality should be exposed as a service
  • Loosely coupling services to support broad interoperability when requirements change
  • Designing appropriate modularity and granularity of services

Technology Specification: Interoperability Basic Profile

Description - The ETRM uses the WS-Interoperability Basic Profile as a baseline for the minimum SOA standards compliance required to insure interoperability across agencies and vendor platforms, e.g. J2EE and .NET. The Web Services Interoperability Organization (WS-I) is an open industry effort chartered to promote SOA Services interoperability across platforms, applications, and programming languages. The organization's deliverables include the WS-I Basic Profile, which allows developers to create interoperable Business Services, and verify that their results are compliant with both industry standards and WS-I recommended guidelines.

Standards and Specifications :

  • WS-I Basic Profile v. 1.1 - All service oriented applications must be developed to support the WS-I Basic Profile 1.1 which includes:
    • XML 1.0
    • XML Schema Part 1: Structures
    • XML Schema Part 2: Data types
    • Namespaces in XML 1.0
    • SOAP 1.1
    • SOAP 1.1 Message Transmission Optimization Mechanism
    • XML-Binary Optimized Packaging
    • SOAP 1.1 Binding for MTOM 1.0
    • WS-Addressing 1.0 (with some exclusions related to SOAP 1.2)
    • Attachments Profile Version 1.0
    • RFC3986: Uniform Resource Identifier (URI): Generic Syntax
    • WSDL 1.1
    • UDDI 2.0
    • RFC2246: The Transport Layer Security Protocol Version 1.0
    • RFC2459: Internet X.509 Public Key Infrastructure Certificate
    • RFC2616: HyperText Transfer Protocol 1.1
    • Secure Sockets Layer Version 3.0
    • RFC2965: HTTP State Management Mechanism
    • RFC2818: HTTP over TLS

WS-I Basic Profile 1.0 included in its specification SOAP-specific messaging requirements. In an effort to support extension and the re-use the Basic Profile in support of multiple messaging specifications, protocol-specific requirements have been re-factored out of the Basic Profile and into separate profile documentation (SOAP Binding Profile 1.0).

WS-I Basic Profile 1.1 combined with the Simple SOAP Binding Profile 1.0 is equivalent to the WS-I Basic Profile 1.0. Additionally, WS-I Basic Profile 1.1 introduces additional Profile for SOAP Messages with Attachments.

WS-I Basic Profile 1.2 added SOAP Message Transmission Optimization Mechanism (MTOM) and XML-Binary Optimization Packaging (XOP).  Working together, these W3C Recommendations provide an efficient means for applications to exchange large amounts of binary data in SOAP message attachments.

WS-I Basic Profile 1.2 also added WS-Addressing.  This W3C Recommendation provides a standardized general-purpose mechanism for exchanging addressing information in a transport-neutral manner, enabling a wide variety of message exchange patterns for communicating between applications.
 

Refer to: http://www.ws-i.org/Profiles/BasicProfile-1.1.html
http://www.ws-i.org/Profiles/BasicProfile-1.2.html

 

  • Simple SOAP Binding Profile 1.0

All service oriented applications must be developed to support the Simple SOAP Binding Profile 1.0.

The Simple SOAP Binding Profile is derived from the Basic Profile 1.0. This re-factored specification format enables additional Profiles to be composable with the Basic Profile, without requiring incremental changes.

Refer to: http://www.ws-i.org/Profiles/SimpleSoapBindingProfile-1.0.html

  • Attachments Profile 1.0

This profile complements the WS-I Basic Profile 1.1 to add support for interoperable SOAP Messages with Attachments.

Refer to: http://www.ws-i.org/Profiles/AttachmentsProfile-1.0.html

Migration Strategy - The ETRM will continue to be updated to reflect any changes to the WS-I Basic Profile version to be implemented.

Technology Specification: Interoperability Basic Security Profile

Description - The ETRM uses the WS-Interoperability Basic Security Profile as a baseline for the minimum SOA security standards compliance required to insure the security of enterprise web services. The Web Services Interoperability Organization (WS-I) deliverables include the WS-I Basic Security Profile, which allows developers to create secure Business Services, and verify that their results are compliant with both industry standards and WS-I recommended guidelines.

Standards and Specifications:

  • WS-I Basic Security Profile v. 1.0 - All secure service oriented applications must be developed to support the WS-I Basic Security Profile 1.0 which includes:
    • WS-I Basic Profile 1.0, including
      • Secure Sockets Layer Version 3.0
      • RFC2246: The Transport Layer Security Protocol Version 1.0
      • RFC2459: Internet X.509 Public Key Infrastructure Certificate
    • SAML 1.1
    • WS-Security 1.1
    • XML Encryption
    • XML Signature

For details about the security specifications, please refer to the Security Domain.

Refer to: http://www.ws-i.org/Profiles/BasicSecurityProfile-1.0.html

Migration Strategy - The ETRM will continue to be updated to reflect any changes to the WS-I Basic Security Profile version to be implemented.


Application > Design & Development >

4.1.2 Technology Area: Development Methodology

Description

The diagram below describes the flow and processes that are typically found in a “best practices” software development methodology. Development methodologies are independent of the underlying development model, e.g. SODA. The outside of the circle shows the typical steps involved in software development. The center of the circle shows four principles or imperatives for a successful software project. These imperatives include:

  • Develop iteratively -- don't try to develop the application in one pass.
  • Focus on architecture -- use component models which you can reuse and apply in a service-oriented architecture (SOA).
  • Continuously ensure quality -- test each design iteration to make sure quality is improving.
  • Manage change and assets -- use software configuration and project management tools to control release levels, project requirements, and schedule integrity.

best practices software development

Source: IBM Corp.

Technology Specification: Unified Process (UP)

Description

The UP (Unified Process) is an iterative software development methodology. Based on UML, UP organizes the development of software into four phases, each consisting of one or more executable iterations of the software at that stage of development.

  • Inception - In this stage, the project’s business case is stated and the team decides if the project is worth doing or if it is even possible. It is important to the process to first formulate the scope of the project and also determine what resources will be needed.
  • Elaboration - In this stage, the developers take a closer look at the project to determine its architecture foundation and to evaluate the architecture in relation to the project. This stage is important to the UP because it is here that developers analyze the risks associated with changing the scope of the project or adding new technologies along the way.
  • Construction - In this stage, the development of the project is completed. The application design is finished and the source code is written. It is in this stage that the software is tested to determine if the project has met its goal laid out in the inception phase.
  • Transition - In this stage, any fine-tuning is performed. Any final adjustments can be based on user feedback, usability or installation issues.

Guidelines – Agencies should utilize a subset of UP, as appropriate for the project scope. There are a number of tools and products available designed to facilitate UP implementation. One of the more popular versions of UP is the Rational Unified Process (RUP)®.

Standards and Specifications -

Migration Strategy - Agencies should migrate to the Unified Process as a consistent methodology for application and/or service development.


Application >

4.2 Discipline: Application Composition

Description

Application composition enables the implementation of new applications and business processes by combining existing processes and services.  Application composition requires the specification of how participating components collaborate with one another.  Collaboration details can be specified through:

  • Orchestration – As more and more Web Services are created there is significant business value in defining the flow of a business process that involves distinct components.
  • Choreography – As organizational boundaries are crossed there is a need to define the agreements that govern how independently defined processes interact with each other.  Choreography standards have been slow to gain broad industry acceptance and are not included in this version of the ETRM.

Stakeholders/Roles

Designers, developers and implementers of Commonwealth web applications; enterprise application and data architects; business service architects and analysts; software developers and development service providers; data center infrastructure and operations planning.

Roadmap

Application development has historically been a siloed activity with limited reuse of existing services, especially across organizational boundaries.  In the target state, development of applications is done by identifying existing services from the Enterprise Registry and Repository, developing new services as needed and defining the processes that will result in a fully functional business solution.  It will also be possible to reuse services that are external to the enterprise.
In addition to supporting the reuse of services and resources across multiple business entities, another key benefit will be that the resulting application will conform to enterprise governance policies.  While this will transform the way that applications are developed, the end user experience will be seamless.

Enterprise Technology Solution

Not applicable

Relevant Standards Organizations

Additional information about the Standards Organizations listed below can be found in the Introduction section of the ETRM or by clicking on the hyperlink to the organization.

  • OASIS - Organization for advancement of structured information standards

Associated Technology Areas

  • Orchestration
  • Choreography (TBD)

Application > Application Composition>

4.2.1 Technology Area: Orchestration

Description

Orchestration is the ability to control how information flows and services interact to form business processes within and between enterprises, in a manner that is verifiably compliant with business policies, including security and privacy requirements.

Orchestration defines how services work together, including business logic, sequencing, compensating transactions and exception handling, to form higher level processes and composite applications. Orchestrations are typically defined and controlled by one business entity and may include internal systems, systems between entities, or both.

The use of open standards-based specifications for service-enabled business process implementation will allow Commonwealth agencies and their business partners to make independent decisions on modeling and execution environments.  This will enable business processes to interoperate at the enterprise-level, as well as with external agencies and business partners.

While there is some variability on the industry’s definition of orchestration vs. choreography services, a key difference between the two is that the end result of service orchestration is a new service, while the end result of service choreography is a peer-to-peer service interaction agreement.

Technology Specification: Web Services Business Process Execution Language (WS-BPEL)

Description -
 

WS-BPEL is a specification for orchestration, using an XML-based language for defining business process behavior for web services.  WS-BPEL supports the definition of two distinct types of business processes: executable and abstract.  Executable business processes model actual behavior in the context of a business interaction, whereas abstract business processes are partially specified processes that are not intended to be executed and serve as a process template.

WS-BPEL was not designed to directly support human workflow.  There are a number of vendor implementations that interface human interactions with the remainder of the business process execution via a WSDL-based interface.

Guidelines -

  • Use WS-BPEL to expose legacy implementations as an interoperable service, transforming information structure and flows as needed to integrate between open standards-based interfaces and existing implementations.
  • Use WS-BPEL in projects focused on business process re-engineering, in particular where business analysts work closely with development team, in agile development environments.
  • Specify abstract business processes to enforce business rules and constraints.
  • Exercise caution when using WS-BPEL to implement connectivity to user interaction so as to minimize detriment to interoperability.
  • Composite applications created using WS-BPEL should follow governance guidelines established for granular services, including for instance inclusion in an enterprise registry, when available.

Standards & Specifications -

Migration -

The notion of a composite application is based around the idea of building new applications by integrating existing building blocks.  Agencies should consider building composite applications by using open standards-based orchestration flows that support on demand business integration.  In addition, agencies should migrate away from integration solutions that rely on proprietary protocols and standards.

There are a number of visual programming environments that facilitate the creation of WS-BPEL composite services.  These visual artifacts make it easier for business analysts and developers to collaborate on business process modeling and definition.