For more information about Office Business Applications, please visit Office Business Applications Developer Portal.
This is a showcase review for our sponsors at The Code Project. These reviews are intended to provide you with information on products and services that we consider useful and of value to developers.
Contents
Introduction
The 2007 Microsoft Office System Provides Capabilities to Host Applications
SQL Server 2005 Provides Capabilities for Business Intelligence
BizTalk Server 2006 Provides Capabilities for Messaging and Orchestration
Office Business Applications Are Composite Applications
Building an Office Business Application
Introduction
This white paper is the second in a set of white papers on composite applications built on the Microsoft platform. This chapter will drill deeper into specific platform technologies for building and deploying composite applications.
In the previous white paper, we saw that composite applications must be deployed onto a platform that enables composition. Such a platform must provide:
- A set of containers in each of the following tiers�presentation, productivity, application, and data�and associated component types that can be hosted within those containers.
- A set of capabilities that provide core services for composite applications to leverage.
This white paper first will walk through the capabilities of various platform technologies that make up the Microsoft platform, and then will discuss the various containers provided by these platform technologies. Note that these composite business applications are called Office Business Applications (OBAs), as most user interactions are through client and server components of the 2007 Microsoft Office System. However, to build up an OBA for an end-to-end business process, capabilities from other platform technologies also must be leveraged, in addition to those from Microsoft Office.
The 2007 Microsoft Office System Provides Capabilities to Host Applications
The new version of Microsoft Office�the 2007 Microsoft Office System�is a great platform on which to build composite applications. This system delivers not just the familiar set of Microsoft Office clients (Office Word, Office Excel, Office InfoPath), but also several key capabilities as services that are delivered on both client applications and the server. These services are not just packaged together into a monolithic unit, but are very compartmentalized (as shown in Figure 1), and each has its own Web services interfaces.
Solution providers can take advantage of these services in their own applications, which means that core business processes can now be cleanly integrated into Microsoft Office clients and servers. The composite applications that get assembled upon this platform are called Office Business Applications (OBAs).
The high-level capabilities in the 2007 Microsoft Office System are listed in the following subsections. Each of these capabilities is a powerful feature, when looked at individually; however, it is the combination of these different technologies into a single integrated platform that makes composition practical. This integration enables delivery and deployment of composite applications without an overwhelming increase in complexity in the overall platform, tooling and, architecture.
Web Site and Security Framework
Microsoft Office SharePoint provides a common framework for creating a wide range of Web sites, such as team-collaboration sites, intranet portals, and Internet Web sites. This is tightly integrated into the Active Directory directory services system to provide authentication and role-based authorization, as well as enable federated trust relationships.
Open XML File Formats
This enables rich server-side processing of documents. With prior versions of Microsoft Office, parsing the document by using the object model required an instance of the client application to be started up.
Extensible User Interface
There are two channels for extension of the user interface: on the server and on the client.
Office SharePoint provides a Web portal that can be used to host server-side Web applications that are composed from a library of building blocks called Web Parts. This library is packaged with a number of Web parts out of the box, and can be extended by solutions providers for particular business processes. In addition, users can personalize and extend applications after they have been deployed into Office SharePoint. Unlike prior versions of Office SharePoint, the Web Part framework is now integrated with .NET constructs in ASP.NET. Also, the distribution infrastructure for Web Parts is simplified, so that you can wrap up a Web Part�based application, roll it out across the entire farm of the Office SharePoint site, and manage it in a very simple and central way.
Applications that have been built into Microsoft Office clients (Office Excel, Office InfoPath, Office Word) can also be extended by solutions providers, by using Microsoft Visual Studio Tools for Office (VSTO) to create custom task panes, custom ribbons, and so forth.
Business-Data Catalog
This is a metadata repository used to define business entities that are stored in back-end data stores, to model relationships between entities, and to define the actions that are permissible on entities.
Enterprise Search
Use this capability to surface data from various enterprise sources through search.
Workflow
Windows Workflow Foundation (from.NET Framework 3.0) has been directly integrated into Office SharePoint, which means that you get the core workflow run-time engine hosted directly in the Office SharePoint server. In turn, this means that a set of core scenarios around workflow are delivered out of the box, such as the typical serial-parallel document approval routing across the organization. This set of workflows can also be extended by solutions providers. Workflows can be initiated either from within Microsoft Office client applications or by server-side events (such as a document getting saved). So, a basic scenario might be an information worker creating a document in Word and posting the document to an Office SharePoint site, thereby triggering an approval workflow.
Solution providers can extend these capabilities using either the Office SharePoint Designer (SPD) or Visual Studio. While Visual Studio is a developer tool, SPD is a tool for business analysts. SPD is a WYSIWYG design tool that is focused on creating Office SharePoint screens and workflows through a set of wizards that step the user through the process of creating new workflows. Workflow provides a powerful separation of interests from development. Developers can develop reusable modules called activities that can be deployed on the Office SharePoint server, and business analysts can then link these activities together to form workflows to solve specific business problems.
In addition to the core capabilities of the 2007 Microsoft Office System, there are also three major investment areas in terms of scenarios that make use of the base capabilities. These are listed in the following subsections.
Enterprise Content Management
Manage diverse content, with one topology for Web, document, and records management. Also, support for document life-cycle management.
Business Intelligence
This comprises server-based Office Excel spreadsheets, plus business-intelligence (BI) components (dashboards, reports, Web Parts) built into the portal and connected to SQL Server Analysis Services.
Unified Communications and Collaboration
These provide support for unified communications integrated into the platform.
Figure 1. Capabilities provided by the 2007 Microsoft Office System (Click on the picture for a larger image)
SQL Server 2005 Provides Capabilities for Business Intelligence
In addition to core relational-database capabilities, SQL Server 2005 provides a complete BI stack, with three core services: Integration Services, Analysis Services, and Reporting Services. These services give rise to the following set of capabilities, which enable composition around business-intelligence solutions, that can be surfaced into OBAs deployed onto the 2007 Microsoft Office System.
Design
The BI Development Studio built into Visual Studio provides design capabilities for Analysis Services, Reporting Services, and Integration Services.
Synthesis
SQL Server Integration Services provides the ability to build and debug complex integration packages. This enables data acquisition from source systems, integration, data transformation, and synthesis. A usage scenario for this might be sourcing data from transactional systems to feed into a data warehouse.
Storage
The Universal Dimensional Model (UDM) is a flexible and powerful way to model data and business rules that blurs the lines between relational and multidimensional storage. This is shown in Figure 2.
Figure 2. Scalable, high-performance UDM server
Analysis
SQL Server Analysis Services provides an OLAP server, a data-mining platform with packaged data-mining models that enables historical/predictive analytics, and hidden relationship detection. Solution providers can extend these models, as seen in Figure 3.
Figure 3. Analysis Services data-mining models
Delivery
SQL Server Reporting Services enables traditional reporting, Web-based reporting, custom reporting, and dynamic reporting, and is exposed as a Web service.
Figure 4. Business Scorecard server is a set of reporting tools that leverage SQL Server reporting services and can be used to surface reports into the 2007 Microsoft Office System. (Click on the picture for a larger image)
Management
SQL Server Management Studio provides management capabilities for SQL Server database and analysis-services cubes.
BizTalk Server 2006 Provides Capabilities for Messaging and Orchestration
The BizTalk Server 2006 provides a broad range of capabilities around messaging and orchestration, as shown in Figure 5. These capabilities are listed here.
Messaging
BizTalk provides the ability to communicate with a variety of other systems through messages. Pluggable adapters enable different kinds of communication, such as those to support different types of wire protocols and message formats.
Orchestration
These are graphical design-time tools to create business processes, and an engine to run these that is built on top of the messaging capabilities. Typically, BizTalk is used to orchestrate business processes that involve systems and not people.
Business Rules Engine
These are design-time tools and a run-time engine for complex sets of business rules.
Business Activity Monitoring
These are capabilities for monitoring a long-running business process that is targeted to business users.
Business Activity Services
This allows information workers to set up and manage interactions with trading partners.
Figure 5. BizTalk Server provides capabilities for messaging and orchestration.
Office Business Applications Are Composite Applications
OBAs leverage capabilities from these various platform technologies to form composite applications. Let us now look at each of the tiers in Chapter 1, Figure 6, and examine the types of containers and component types that the platform provides.
Composition in the Presentation Tier
The first type of container in the presentation tier is the Microsoft Office client application, such as Office Excel, Office Word, or Office InfoPath. These applications are customizable containers that can now more easily surface information and functionality from line-of-business (LOB) applications through custom task panes, ribbons, and actions that present users with data and actions in the context of their current activity. The component type that can be hosted within these containers is the Open XML document. This is the new XML representation for Microsoft Office documents that enables rich server-side processing of information stored within. This is shown in Figure 6.
Figure 6. Microsoft Office client applications are customizable containers for Open XML content. (Click on the picture for a larger image)
The second type of container is a Web portal, as enabled by Windows SharePoint Services (WSS) and Microsoft Office SharePoint Server (MOSS).
WSS v3.0 provides the following hierarchy of containers, as shown in Figure 7:
- Farm�Installation of one or more load-balanced Web servers and back-end servers, with a configuration database.
- Web application�IIS Web site, extended to use WSS, that can host site collections.
- Site collection�Container for WSS sites that exists within a specific content database. A site collection contains a top-level site, with optional child sites, and is the unit of ownership, securability, and recoverability.
- Site�Container for child sites, pages, and content such as lists and document libraries.
- Page�Container for Web Part zones and Web Parts.
- Web Part zone�Container for Web Parts.
- Web Part�Components that display content on a page in modular form and are the primary means for users to customize/personalize pages.
Figure 7. Containers provided by Windows SharePoint Services (Click on the picture for a larger image)
While WSS provides support for building collections of sites for team collaboration, MOSS enables portal functionality on top of WSS, with additional capabilities. For example, MOSS comes with capabilities for enhanced search, connectivity to business data stores, and for business intelligence. However, a MOSS portal is a WSS site collection, and so is a hierarchy of WSS sites. MOSS also comes with a Web Part gallery that contains a rich set of Web Parts out-of-the-box�for example, to surface Office Excel spreadsheets and charts. Solution providers can also provide their own custom Web Parts for application-specific or domain-specific functionality. These can be uploaded into WSS. Information workers can then personalize pages by adding Web Parts from the gallery, removing Web Parts from a page, or rearranging the layout.
Composition in the Productivity Tier
The 2007 Microsoft Office System provides a number of different ways to share information and collaborate upon it. For example, server-side storage provides containers for in-process documents and other kinds of heterogeneous content with version control. This allows for collaboration in unexpected or unplanned situations. It is hard to capture all of the complex human interactions in a business-process management (BPM) system, as work usually never happens as planned. In traditional three-tier architectures, there is little support for this beyond storing in-transit documents on personal hard drives or e-mail servers, and it can sometimes be hard to decide which document is the correct version. However, the 2007 Microsoft Office System can set up versioned document libraries to store documents at the intermediate stages of a business process. This improves manageability and also improves the likelihood of graceful recovery from unplanned events.
WSS provides the following types of storage:
- List�Container for items, which could be from built-in list types or custom list types. Traditionally, this has been the atomic unit of storage, but now a list can store huge amounts of data such as knowledge bases or Web content. There is also built-in index and query support.
- Document library�Special types of list that supports versioning and source-control of documents. For example, InfoPath forms can be stored in forms libraries, reports in report libraries, and other documents in document libraries.
Information workers can add document libraries themselves and specify particular document templates to be used by all documents in those libraries. For example, a business analyst might use the Office InfoPath WYSIWYG design tool to create a form, and then use that form as a template to create a forms library. Whenever users create a new document within that library, this template will be used to create an empty form.
The 2007 Microsoft Office System also has built-in server-side support for Windows Workflow Foundation (WWF), which is a technology that can be used to design and execute workflows. Figure 8 shows the different components within WWF.
Figure 8. Windows Workflow Foundation (WWF)
How does this enable composition? WWF makes it possible to model workflows through easy-to-use graphical-design tools, and to represent workflow structures and data flow declaratively in an XML representation called XAML.
The WWF run-time engine is hosted within MOSS, and acts a container for business logic that can be attached to work items and documents in the form of workflows. These workflows can be associated with lists, document libraries, or with particular content types. They are started and completed by user actions, and are managed using WSS task lists. For example, workflow activities create and update task items as required, and users can track workflow progress through history tables. 2007 Microsoft Office System client applications are also workflow-aware. They can be used for workflow initiation, configuration, completion, and ad-hoc customization (forwarding/delegation).
Workflows can be associated with lists, document libraries, or particular content types. These associations to WWF templates are tracked in a farm-wide workflow association table. WWF templates are defined by XML metadata, and can include both workflow assemblies and forms. For example, when users create a document library, they can choose to associate that library with a particular workflow and specify the conditions under which the workflow gets triggered; for example, a document in a given library might have been modified or created. This workflow could support a particular business process or support document life-cycle management.
Figure 9. SharePoint workflow architecture (Click on the picture for a larger image)
Integration of the 2007 Microsoft Office System with WWF provides a variety of benefits. Simple business processes can be automated in a way that is seamlessly integrated into the Office SharePoint user interface. Users are empowered through self-service capabilities, such as support for a broad range of user-controlled document routing and tracking scenarios, in a way that reduces the involvement of IT staff in putting together simple applications. WWF also provides vertical solutions providers with an extensibility point to deploy their own business rules and logic into the containers provided by the 2007 Microsoft Office System.
Finally, the productivity tier must also provide a lightweight way to create and publish information and reports. There is support in the 2007 Microsoft Office System to do this, which integrates into SQL Server Reporting Services, and provides the following components:
- Report center�A template for creating WSS reporting sites.
- Report library�A document library with special support for storing reports.
- Dashboard�A WSS page assembled from reporting Web Parts.
- Report viewer�Web Part for viewing reports made available from SQL Server Reporting Services.
- Web Part�Used for viewing Office Excel graphs and tables.
- KPI (Key Performance Indicator) Web Part and list�Information workers can choose to source metrics for this in several ways.
A dashboard might be provided to users as a reporting template built around specific business functions, such as sales, marketing, or inventory management.
Composition in the Application Tier
Typically, structured business logic lives within the application tier. This might be an LOB application, such as an ERP system, or an orchestration across multiple systems, such as a BPM system. The application tier will typically include both transactional systems and decision-support systems. There are multiple ways for OBAs to enable composition in the application tier, as well as ways to consume composite services exposed by other platform technologies (both Microsoft and non-Microsoft).
The first level of composition in the application tier is through packaged activity libraries created using WWF and deployed into the 2007 Microsoft Office System. Previously, we discussed how workflows can be attached to lists, document libraries, and particular content types. Figure 10 shows how the WWF run time provides a container for application-specific activities that are packaged and deployed as activity libraries, and on top of which workflows are assembled.
Figure 10. Workflow hosting with WSS (Click on the picture for a larger image)
Note that workflows are a set of activities; and, while activities can be represented as workflows themselves, they can also be authored using code. This makes it possible for solution providers to package solution-specific activity libraries. This way, the workflow designers can use the design tool to select from the library of activities and string them together into a workflow. Figure 11 shows how custom activity libraries can be packaged.
Figure 11. Packaging activities for WWF (Click on the picture for a larger image)
The second level of composition in the application tier provided by the 2007 Microsoft Office System is through Office Excel Services. This is a server-side Office Excel calculation engine that is built into Office SharePoint Server. It provides browser access to live, interactive spreadsheets that are deployed on the server, and also Web service access to server-side Office Excel calculations. With Office Excel Services, existing Office Excel power users can now provide server-side application logic in a way that is familiar to them. MOSS is now a container for application logic, as shown in Figure 12.
Figure 12. Office Excel Services in the 2007 Microsoft Office System (Click on the picture for a larger image)
A third way for OBAs to enable composition in the application tier is to consume composite services exposed by other platform technologies. The 2007 Microsoft Office System can be plugged seamlessly into a services-oriented architecture (SOA). If the enterprise has a services backbone already under development, these interfaces can be consumed from the 2007 Microsoft Office System. This can be done in a couple of ways. The first is by invoking Web service interfaces in activities that have been built into workflows deployed into the productivity tier. The second is through the Business-Data Catalog (BDC), which is described in the next section.
Composition in the Data Tier
The 2007 Microsoft Office System also comes with a Business-Data Catalog (BDC) that runs within the server as a shared service. It can read data from multiple types of data sources�databases, Analysis Services cubes, and Web services�and then surface this back into the portal through Office SharePoint tables and lists. This acts as a metadata repository for descriptions of business-data entities and their attributes, and for mappings of these entities back to data stores within the enterprise, as shown in Figure 13.
Figure 13. Business-Data Catalog (BDC)
While the BDC cannot be used to create an entity that maps across multiple data stores, it is possible to define relationships that link entities, such as parent-child relationships. So, the BDC can be used to create lightweight linkages between data entities across the enterprise�almost like an enterprise thesaurus. BDC-defined entities can then be plugged back into the 2007 Microsoft Office System�for example, in Office SharePoint lists. This allows users to compose pages with linkages to back-end data, and to traverse data tables by following relationships between entities.
While the BDC enables data composition, it provides only read-only access to data. However, you can use the BDC to model actions that can be taken on a data entity, where an action is defined by a name, a URL, and a set of attributes from the entity definition to be passed back to this URL. This can then be used from within a drop-down menu on an Office SharePoint list. The URL can correspond either to a Web service or to a server-side document such as an Office InfoPath form with code behind to pre-populate the form from the context that gets passed in from the BDC. Information workers can then use the portal to create lightweight applications in Office SharePoint with tables and lists that surface BDC data and actions.
Summarizing Capabilities of the Microsoft Platform that Enable Composition
Figure 14 shows how some of the capabilities of the 2007 Microsoft Office System map to the tiers in Chapter 1.
Figure 14. Capabilities of the 2007 Microsoft Office System application platform, mapped to tiers (Click on the picture for a larger image)
Table 1 provides a list of asset types that are candidates for composition.
Table 1. Asset types, candidates for composition
� Open XML documents
� Workflows
� Business activities
� Business rules
� Schemas
� Metrics
|
- Web Parts
- Dashboards
- Sites
- Pages
- Data connections
- Authorizations/Claims
- Reports
|
Building an Office Business Application
There are two steps to building a standard business process as an OBA:
- Design the metadata and packaged application code, and package them.
- Deploy the package onto production systems.
Build a Process Pack
- Build user interfaces for document-centric processes into Microsoft Office client applications, using Visual Studio Tools for Office (VSTO).
- Build WSS sites with task-specific Web Parts, pages, dashboards, lists, and document libraries, where each site is designed for a particular business function or process. These sites can be used to create site templates for packaging a standard business process into an OBA solution.
- Use WWF to wire together lists and document libraries in the sites, with server-side rules and business logic for server-side processing of in-process documents. Package these workflows into assemblies for deployment.
- Define touch points from workflows in the OBA to back-end LOB systems. The process pack metadata should include the Web services interfaces for this integration. The actual connections will have to be made during the deployment phase.
- Define BDC entities for data connections required for cross-functional processes built into the OBA.
- Add decision support by defining metrics, reports, dashboards, and Office Excel charts and tables to be used by the WSS sites.
- Package solution as a process pack (WSS site templates, WWF assemblies, Microsoft Office documents, and so forth) using the component types in Table 1.
Deploy Process Pack to Production Systems
- Deploy WSS sites to the Office SharePoint server on the production system.
- Configure connections from workflows to LOB applications using Web services or other custom adapters.
- Configure data connections by connecting BDC data-entity definitions to actual data stores.
- Provision users.