Step 3 Componentizing Business Processes
- Component/Service/Business Service definition
- Fine-Grained Components -Issues
- Coarse Grained Components Advantages
- Pre-built Components -ease the rapid deployment of
processes
- User Defined Components Best practices
- Reusing existing resources
Fine Grained Components -Issues/Problems
- Typically represent function call (static input and
outputs)
- Low reusability (impossible to build a general purpose
Database Adapter using a "Fine Grained"component design
approach)
- Development overheads (tight coupling between client and
component)
- Change of service functionality needs re-coding (Static
data formats for input and output)
- Does not map well to business process composition
- Synchronous invocation of function calls
- Skilled developers needed to use fine-grained components
Coarse Grained Components -Advantages
- Represents a high level business component
- Easy to Orchestrate and Choreograph business processes
using these components
- Reusable across business process (changes requiedonly in
design time properties)
- Dynamic data formats for input and output
- Synchronous & Asynchronous invocation
- Low development cost (middleware is hidden)
- Business Analyst can orchestrate business processes
Enterprise Services -Reusable, Business Level
Building Blocks
- Coarse-Grained
- Level of abstraction easily understood by business people
- Event-Enabled Interfaces
- Easily composed into Distributed, Event-driven Processes
- Multi-Language
- No development restrictions
- Generalization of Web-Services
- Standards-based WSDL interfaces
Service
Interface
Coarse Grained Components
"A component is a non-trivial, nearly independent, and
replaceable part of a system that fulfills a clear function in the
context of a well-defined architecture. A component conforms to and
provides the physical realization ofa set of interfaces."
-Philippe Krutchen, Rational Software
- Well defined interfaces & contracts
- Provides implementation of interfaces
- Coarse grained
"A software component is a unit of composition with
contextuallyspecified interfaces and explicit context dependencies
only. A software component can be deployed independently and is
subject to third-party composition."
-Clemens Szyperski, Component Software
- Developed, tested and deployed in complete isolation
- Can be configured for different environments at deployment
time
- Supports contextual dependencies.
"A component is a physical and replaceable part of a system
thatconforms to and provides the realization of a set of
interfaces...typically represents the physical packaging of
otherwise logical elements, such as classes, interfaces, and
collaborations."
-Grady Booch, Jim Rumbaugh, IvarJacobson
- Includes physical packaging of files, executables, jars,
dllsetc.
- Aggregation of classes & functions into a complete,
reusable functionality
- Higher level of reusability than Classes
Pre-Built Services
- Services
- Bridges
- Database/File Adapters
- Web/WebServiceAdapters
- Routing (flow services)
- Transformation
- Signing, encryption, encoding Services
- Adapters
- Middleware
- Application
User Defined Components Best Practices
- Identifying set of user defined services
- Choosing Appropriate programming language
(Java, C, C++, C#, VB, ActiveX,
Perl, Python, JavaScript etc)
- Identifying input and output ports
(dynamic or static)
- Custom Property Sheet
(Design & runtime properties)
- Exception and Error Handling mechanisms
- Tracing and Logging support
- Trace Modules and trace levels
- Logging details
- Transaction support
- Local
- Global
User Defined Best Practices
- Custom Property Sheet (Design & runtime properties)
/a>
- Identifying input and output ports (dynamic or static)
- Data format definitions (XSD, DTD, XML)
- Exception and Error Handling mechanisms
- Tracing and Logging support
- Trace Modules and trace levels
- Logging details
- Transaction support
- Local (Client level transactions)
- Global (XA)
- Compensation transactions
- Performance Requirements
- Expected transaction throughput
- Multi-threading support
- Synchronous/Asynchronous
- Tools for service development
- IDE plug-ins
Reusing Existing
Services Best Practices
- Wrap existing code (Java, C, C++, VB etc)
- Adapters to COM, DCOM, EJB, CORBA, RMI etc
- Reusing business processes
|