Written by Vaughn Vernon
Chapter 3
Business-to-Enterprise Pattern Analysis
While the Business-to-Consumer pattern is well understood by architects and developers, the Business-to-Enterprise pattern is most widely used among business organizations. Business are run using the Enterprise Business Patterns analyzed in this chapter.
B2E: The Business-to-Enterprise Pattern
Most business personnel function in our day-to-day activities within the Business-to-Enterprise pattern. It’s the pattern that defines how organizations operate their business relative to Information Technologies they have invested in and depend on.
This XBP is both broad and deep. From the viewpoint of software, it includes such applications as email and instant messaging, project management, inventory and supply chain management, customer relationship management, accounting and financials packages, business intelligence, reporting, and analysis tools, and human resources management. From a technical angle it includes networking and administrative software, Web development and content management tools, software development tools, helpdesk administration, and the list goes on. What particularly complicates this space is the fact that no two businesses are exactly alike. The automation software around even the various segments business is vast and competitive.
Talk about inventory! If we were to attempt to address every nook and cranny of this space it would be far too extensive to handle. This is particularly the case, again, because of the custom applications that have been written by the individual companies who know their business best. Therefore, we will not attempt to dive too deep into this pattern. We do believe, however, that there are plenty of common patterns useful to the majority of businesses, which we will dredge up and capture.
Web and Software Development Business Patterns
One good place to start in our analysis of the B2E space is with the area that most all of us specialize in. Since we know the Web and software development space so well we probably feel rather comfortable discussing patterns here first.
Suffice it to say, there are patterns around the creation of Web content and software artifacts. Some of the proven patterns used time and time again are as follows:
|
Commodity Pattern
|
Implementation Examples
|
|
Application Programming Interface (API)
|
J2EE and EJB interface packages, .NET Framework
|
|
Application Server
|
BEA WebLogic, IBM WebSphere, JBoss
|
|
Aspect-Oriented Software Development
|
Realized by ApsectJ, AspectWerks, JBoss
|
|
Build and Configuration Management
|
Ant, Make, Rational ClearCase, StarTeam
|
|
Image Editor
|
Adobe Photoshop, Macromedia Fireworks
|
|
Integrated Development Environment (IDE)
|
Eclipse, JBuilder, Visual Studio .NET
|
|
Object-Oriented Software Development
|
C++, C#, Java, Smalltalk
|
|
Project Management
|
??? (not really Microsoft Project)
|
|
Relational Database Management System
|
Microsoft SQL Server, MySQL, Oracle Database
|
|
Software Development Kit (SDK)
|
.NET Framework, Java Development Kit
|
|
Software Development Process
|
Rational Unified Process, Extreme Programming
|
|
Software Modeling Tool
|
Rational Rose, Rational XDE, Together Control Center
|
|
Software Revision Control
|
CVS, Rational ClearCase, StarTeam
|
|
Structured Content Editor
|
An XML editor such as XML Spy
|
|
Web Page Editor
|
Macromedia Dreamweaver or Microsoft Front Page
|
|
Web Server
|
Apache HTTP Server, Microsoft Internet Information Server (IIS)
|
|
Word Processor
|
Typical document editor such as Microsoft Word
|
These may seem like strange patterns, but they are definitely patterns. While given software development processes specify a definite set of steps, the software development process as a pattern captures techniques and strategies in more general terms. For example, waterfall-, iterative-, and agile-process are kinds of processes. But within a Software Development Process pattern definition, these process types might be found under the pattern’s strategies. Of course you may also consider Agile Process to be its own pattern, and you’d be correct if you desired to capture its structure and behavior that way. In fact, if Software Development Process were an EBP in our catalog, then Agile Process and Iterative Process would certainly be solution patterns within it.
Because these patterns and others related to them are so thoroughly documented elsewhere, we will not attempt to address them in this work. Rather, we will focus on useful patterns that are less well understood.
Let’s analyze the Web and software development space to see what essential patterns there are to help us work more efficiently and accurately. First let’s look at the activities that a Web production team commonly engage in:
Work in progress...