icell: Integration Unit in Enterprise Cooperative Environment 1 Ruey-Shyang Wu 1, Shyan-Ming Yuan 1, Anderson Liang 2 and Daphne Chyan 2 1 Dept. of Computer and Information Science National Chiao Tung University, Hsinchu, Taiwan, R.O.C. {ruey, smyuan}@cis.nctu.edu.tw 2 W&Jsoft Inc. Unit 2, 19F, TaijungGang Rd. Sec. 3, Taichung 407, Taiwan, R.O.C {anderson, daphne}@wnjsoft.com Abstract. An enterprise cooperative environment is combination of emerging technologies and methodologies on which both enterprise employee and customers can perform necessary business activities. A business activity will involve many systems of an enterprise. Integration between those systems becomes a critical issue because inter-/intra- enterprises will have heterogeneous systems. Recently, many new technologies boost the evolution of the integration toward a more efficient and effective computing. Enterprise has to choose suitable technology as integration platform to make value. However, only a few enterprises can really utilize those technologies because they do not have a proper infrastructure. Those technologies lose their advantages. In this paper, we design an infrastructure to provide the integration platform. It is icell that provides flexible and useful mechanism to archive business operation. It is light-weigh architecture and can be adopt into existed enterprise environment easy. Based on the mechanism, the integration becomes possible and constructing enterprise cooperative becomes easy. 1 Introduction The enterprise cooperative environment provides necessary elements to accomplish business activities. It brings inter-and intra-enterprise together to make enterprise more efficiently. However, the environment is complex. Intra-enterprise includes business process, employees and much enterprise software. Inter-enterprise has many business-to-business operations. For the reason, there must be a solid foundation for building and performing business activities. Besides, all enterprise systems have their own platform, data format and specified communication interface. Hence, integration architecture is necessary. It will be easy to be adopted into current existed enterprise existed environment and light-weight to build up application. Moreover, it should 1 This research was supported by the Software Technology for Advanced Network Application project of Institute for Information Industry and sponsored by MOEA, ROC
cover the business operation to perform business activities. icell provides the integration platform and is suitable in enterprise cooperative environment. icell, stands for integration Cell, provides the infrastructure for the cooperative environment. It can lower the integration effort comparison with several open integration standards. icell facilitate the build to integrate and light-weight construction strategy. It is intended to make the application constructions and application as one step, while begin served as the basic integration unit and keeping the overall solution to be light-weight. On such architecture, the cooperative environment becomes possible because it is easy to use and has good performance. The paper is organized as following: Section 2 shows the backgrounds. Section 3 has whole design of icell. Section 4 shows the system performance. Finally, section 5 is the conclusion and future work. 2 Background 2.1 Enterprise Cooperative Environment Enterprise cooperative environment provides the environment to perform all business inter-/intra-enterprise. Today, interaction between enterprises becomes more and more frequently especially when every enterprise only focuses on its special domain. Enterprise cooperative environment defines enterprise-level co-work model and rounds up all enterprise components. To realize enterprise cooperative environment, business modeling and platform to support is important. Business modeling relies on business manager to make decision. Software platform is the layer to execute the decided business activities. To build up the platform, the necessary systems in enterprise should be reviewed because a business activity may make several systems work together. Besides processing internal enterprise activities, information should also be extended to another partner. Business can gain extreme value. 2.2 Objective To construct the enterprise cooperative environment, integration is the key issue. Integration does not only link two systems together but also guarantee its stability. It should provide more mechanism to monitor and manage. Most enterprise integration technologies and product is hard to integrate into existed together. Otherwise, they may lack some features, like management or integration. For the reason, a good integration is necessary to be the foundation in the enterprise cooperative environment. The following aspects should be considered: 1. Define the business process clearly. 2. Adopt into existed platform. 3. Light-weight architecture. 4. Good performance.
5. Mechanism to monitor, exception handle and notify. 6. Standard and extensible interface for system communication. Although there are much software can integrate with many systems easy, some of them may cost a lot resource and other has specified platform. To satisfy the requirement to construct the platform, it leads us to create new architecture. 2.3 Related Works OpenAdapter is a Java/XML-based software platform for business system integration with little or no custom programming. It defines Source-Pipe-Sink model to process information; source provides information, pipe process those data and sink takes the output the information. The communication between components is XML and cost a lot resource to process it. Therefore, a more efficient communication strategy is needed in the cooperative environment. TIBCO ActiveEnterprise is the commercial products to archive enterprise cooperative environment. TIBCO ActiveEnterprise provides many software packages: TIB/Rendezvous provides message bus; TIB/Adapters provide system integration; TIBCO BusinessWorks is the business model tool. TIBCO ActiveEnterprise has the complete set for construct the environment. However, the product is specific and is not easy to integrate with current existed IT infrastructure in Enterprise. 3. icell Design 3.1 icell Conceptual Model XML Configuration Root Root Base Base (Bootstrap) (Bootstrap) icell Web Browser Controller Controller Source Source Pipe Pipe (s) (s) Drain Drain Fig. 1. icell Conceptual Model Figure 1 shows the conceptual model of icell. The Input-Process-Output is mapped as Source-Pipe-Drain in the conceptual model. The Bootstrap component reads icell configuration from XML file when the icell is starting up, and it creates Controller, Source, Pipe, and Drain components accordingly. The Bootstrap component also allow external Web browser to read loaded configurations from it, and optionally, reconfigure it. The Controller acts as a dispatcher for the events in the icell. Whenever the Source component captures events, it delegates the event to the Controller. The Controller invokes suitable components to process the event. Eventually, the Controller returns answers to the Source component when finish.
3.2 Use Case Fig. 2. icell Use Case The whole use case is showed as Figure2. The Base Cell use case defines the common icell component behaviors. The Bootstrap use case is the icell initial entry that can be started from a standalone Java program main entry, or an embedded EJB initialization class. It identifies the location of the icell configuration file, from Load & Parse XML Configuration use case, and streamlines the icell component initialization process. The loaded configuration is stored in a run-time repository, by which the behavior is described by the Configuration Repository use case. The initialized icell components are placed in the run-time component pool, by which the behavior is described by the Component Pooling use case. The startup scenario ends on finishing all the initialization tasks described in the configuration. 3.3 icell Components Fig. 3. icell Class Diagram Figure 3 shows the key classes in icell. icell core classes group consists of the BaseCell root class and the UserCell derived class. BaseCell defines the common logics and functionalities when executing icell. icell configuration classes group mainly consists of the Configurator and ConfigurationService classes. The configurationservice provides the Web-based remote configuration service for icell the administrator. icell utility classes group consists of some utility classes such as logging helper. icell Process classes group control business process in enterprise. icell components that implemented ProcessDispatchable interface, are able to join process and can be controlled by ProcessController and will be called ondispath() method when the process is used. During the icell initialization, EAIEventListener
object will be registered to the corresponding EAIEventSource object. When defined event arrives from related Event Trigger, the invoking follow are: Fig. 4. icell Event Dispatching Sequence Diagram (1) Get the process definition of the incoming event from the Configurator object. (2) Based on the process definition, the ProcessController gets the next object reference from the component pool. (3) Invoke the ondispatch method of the retrieved component. (4) Repeat step (2) ~ step (3) until all the necessary processing steps finished. (5) Return to the EAIEventListener to complete the delegation. 3.5 Configuration Design <!-- XML as Component Assembly Contract --> <icell name="testcell" configurationserviceport="7000" configurationserviceclassname=" " configuratorclassname=" "> <!-- icell Component Model -------------------------> <EAIComponents> <EAIComponent name=" " type=" " classname=" "> <!-- specific configuration per type --> </EAIComponent> </EAIComponents> <EventSources> <!--Timer, etc.--> </EventSources> <Sessions> <!--JMS Sessions, etc.--> </Sessions> <Connections> <!--DB/JMS Connections--> </Connections> <!-- icell Component Model -------------------------> <!-- icell Process Model ---------------------------> <Processes> <process name=" " initiator=" " initialtask=" "> <task name=" " component=" " condition=" "> <next task=" "/> </task> <task name=" " component=" "/> </Process> </Processes> <!-- icell Process Model ---------------------------> </icell> Fig. 5. icell Confiruation Example The core cell definition only has the tag <icell>. The start tag <icell> and end tag </icell> enclose the icell component definition and icell process definitions. The <icell> tag has four attributes to identify the icell components general information. <EAIComponent> shows the EAI components. Finally, the process model is at the least part in <Processes>.
3.6 Process Modeling icell supports the four types of process modeling that are most existed in enterprises: Fig. 6. Process Modeling Cases A. Sequential process. One input, one output, no split and merge occurred. B. Fan-Out process. One input, multiple outputs, split occurred in the process. C. Fan-In process. Multiple inputs, one output, merge occurred. D. Split & Merge process. One input, one output, split and merge occurred. E. Fan-In & Split process. Multiple inputs, multiple outputs, merge and split occurred in the process. 3.7 Pooling Pooling is usually a skill to enhance performance and make better resource utilization. The design of icell utilizes the concept of object pooling to prepare necessary objects prior to icell process execution. It implements the icell component pool to hold typed Java objects defined in the XML configuration. When a defined event occurred, icell ProcessController is able to quickly delegate the event processing task to the icell component in the pool, without creating an object from beginning. Therefore, the overhead of icell process task dispatching is reduced. 4. Performance Two kinds of overhead are introduced by the icell framework: (1) Initialization Overhead; (2) Process Control Overhead. The measurement platform is on Windows 2000 SP3 with Pentium III 800 CPU and 640 MB RAM. The JVM is JRE 1.3.1_06 from Sun Microsystem.
Fig. 7. Initialization Overhead Figure 7 gives the summary result of the overhead measurement. The result shows that the initialization overhead of an icell component is roughly a constant overhead that spends 3.5 milliseconds to create an icell component. And the icell framework overhead is about 510 milliseconds. This is relatively light-weighted compared to other application frameworks, like J2EE. Fig. 8. Result Summary of icell Process Control Overhead Test To measure the overhead of process control inside the icell, this test introduces a benchmark source that triggered by timer for every 1 to 2 second. Each time the benchmark source is triggered, it delicates the event to the process control object. This test gives 10 sets of data, which controlled by the number of dummy pipes in the process. It ranges from 100 to 1000 dummy pipes in a given process. Figure 8 shows the summary result of the test. Typically, for a process with pipes less than 100, the process control overhead per pipe component is less than 0.19 milliseconds. It almost can be ignored compare to normal execution. This result shows that icell is a lightweight framework for Java object assembly and process control. 5. Conclusions and Future Works There are many aspects to be considered in the enterprise cooperative environment. It is quite complex and changeful. icell provides a low-cost and light-weight solution. It has great flexibility and reasonable management efforts those are not covered by other products. The overall robustness and scalability can be guaranteed and adapted by choosing suitable technology. icell provides the missing parts of rapid application integration and assembly.
To make icell to be applied in real enterprise environment, more source/drain components will be provided. The more components, the more rapid connectivity can be available for software developers. Besides, good data translation will give great help in cooperative environment. The translation should also follow light-weight and effective policy. References 1. Alan Everard, MQSeries Business Manager, IBM, Business Process Management Uncovered, eai Journal, January 2001, Vol. 3, Num.1. 2. IBM, WebSphereMQ Product Family, (http://www-3.ibm.com/software/integration/wmq/) 3. Momentum Software Inc., Service Oriented Enterprise, (http://www.serviceoriented.org/service_oriented_enterprise.html) 4. openadaptor.org, openadaptor Programmer s Guide v1.5.0 (http://www.openadaptor.org/) February 2003 5. Rob Hailstone, Integration Strategies: The Start of Convergence, IDC Group, January 2003 6. Steve Burbeck, The Tao of e-business services The evolution of Web applications into service-oriented components with Web services, Emerging Technologies, IBM Software Group, October 1, 2000 (also available via: http://www- 106.ibm.com/developerworks/webservices/library/ws-tao/?dwzone=webservices) 7. David S. Linthicum, Process Automation and EAI, eai Journal, March 2000, Vol. 2, Num 3. 8. Boris Lublinsky, Achieving the Ultimate EAI Implementation, eai Journal, February 2001, Vol. 3, Num. 2. 9. Johnny Long, Integrating the Value Chain, eai Journal, May 2000, Vol. 2, Num. 5. 10. Kathy Harris, Where Is the Value in Value Chains?, Garner Group, http://www.gartnergroup.com, March 2001, Note Num. COM-13-1796. 11. David McGoveran, Enterprise Integrity: BPMS Concepts, Part 1, eai Journal, January 2001, Vol. 3, Num. 1. 12. David McGoveran, Enterprise Integrity: BPMS Concepts, Part 2, eai Journal, February 2001, Vol. 3, Num. 2. 13. David McGoveran, Enterprise Integrity: BPMS Concepts, Part 3, eai Journal, March 2001, Vol. 3, Num. 3. 14. David McGoveran, Enterprise Integrity: BPMS Concepts, Part 4, eai Journal, April 2001, Vol. 3, Num. 4. 15. Alan Everard, MQSeries Business Manager, IBM, Business Process Management Uncovered, eai Journal, January 2001, Vol. 3, Num.1. 16. Martin Butler, Workflow Beyond the Enterprise, eai Journal, November/December 2000, Vol. 2, Num. 11. 17. TIBCO Software Inc., TIB/Rendezvous Concepts, July 2001, Release 6.7. 18. TIBCO Software Inc., TIBCO ActiveEnterprise, http://www.tibco.com/solutions/products/default.jsp 19. W3C, Web Services Activity, http://www.w3c.org/2002/ws/