Fiorano Logo  
     Fiorano Login 

ESB Best Practices View as PDF


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)



  • 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




© 2024 Fiorano 软件科技有限公司。保留所有权利 隐私声明 |使用条款
  网站开发与维护由Fiorano 网络工作组完成
 全球业务支持
 美国
:
+1-408-354-3210
 印度
:
+91 80 4017-0000
 英国
:
+44(0) 19328 95005
 中国
:
+86-10-82608510