Implementing Bpel Compliant Soa Orchestration Using Biztalk Server

Transcription

The 6th International Conference on Information & Communication Technology and SystemsVIII-39IMPLEMENTING BPEL COMPLIANT SOA ORCHESTRATION USINGBIZTALK SERVER1Bayu Adhi Nugroho1, Riyanarto Sarno1Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh NopemberGedung Teknik Informatika, Kampus ITS Sukolilo, Surabaya, 60111, IndonesiaEmail: nugroho09@mhs.if.its.ac.id1, riyanarto@if.its.ac.id1ABSTRACTService Oriented Architecture has promisedbetter way in handling loose coupled component ofsoftware architecture. However, implementing SOAitself is a kind of art in software engineeringpractice and Business Process Execution Language(BPEL) is quite having a bright promise to handlesuch function. Being language to define SOAinteraction it has met many challenges, broaddebates both support and doubt have emerged, butits main feature as an executable document havemade it successfully gain trust. BPEL actually haverivals, name Business Process Modeling Notation(BPMN) and Windows Workflow on it, each ofthem have their own plus compare to it. Examplesneed to be brought up to prove BPEL usage in dailybusiness process basis. Bottom-up approach bycreating web services as SOA implementation andmanaging them through orchestration inside aBPEL engine, resulting empirical usage of BPEL asa proven theory of integrating SOA using BPELactually quite sufficient samples. Conclusion ofSOA orchestration in BizTalk Server resultingBPEL documents would be represented briefly inthis paper.Keywords:1SOA, orchestration, BPEL, BizTalk,software engineering.INTRODUCTIONWeb Services Business Process ExecutionLanguage defined by OASIS is currently in version2.0, it contains revisions from previous, which areBPEL4WS (Business Process Execution Languagefor Web Services) 1.0 and 1.1 [23]. Due to BPELrestrictions on Microsoft BizTalk server [9], indeedthere are incompatibility issues with Biztalk’snative grammar and reasonable doubt of BPELcompliances on other engines would have raisedrationally.Founded by IT companies, OASIS isdetermined to demonstrate the highest level ofcommitment to open standard [16]. Havingqualified contributors [15], BPEL should representmature behaviour to open systems. Being part ofOASIS founder [16], Microsoft currently does notprovide mature environment to BPEL [10]. ParasoftBPEL Maestro Engine [18] and other product [1]have promises in BPEL usage, ignoring languageprogramming domain being used for SOAimplementation [18], which is actually a BPEL’svendor-neutral openness’s spirit.22.1MODEL, ANALYSIS, DESIGN,AND IMPLEMENTATIONTheory / BackgroundService-oriented architecture (SOA) asparadigm for realization and maintenance ofbusiness processes that include large distributedsystems which is based on three major technicalconcepts [14]:1. Services2. Interoperable by using enterprise service bus3. Loose coupledA service itself is a piece of self-containedbusiness functionality which might be simple(storing or retrieving customer data), or complex (abusiness process for customers order) [14]. Asmentioned in [14], services are concentrating on thebusiness value of interfaces, they are bridgesbetween business and IT. In the other hand, webservices are widely regarded as the way SOAshould be realized in practice [14].As mentioned in[21], services are able being aggregated to satisfymore complex business requirements. Written inthis paper terms web services and services are beingused interchangeably.Modeling workflow capability of businessprocess nowadays is demanding executable notationand simplicity, while other model lack of them,such as: BPMN [17] is unable to provide executableenvironment and Windows Workflow [11] is beingcomplicated by code-programming, such demandshave rise executable grammars : XLANG [12],WSFL, BPEL4WS (shortly BPEL) [23]. The WebServices Business Process Execution Language(WS-BPEL) / BPEL, is a current primary industryspecification which conducts standard ofVIII-39ISSN 2085-1944

VIII-40The 6th International Conference on Information & Communication Technology and Systemsorchestration in the Web Services context [13].Asmentioned in [13]: ”The BPEL orchestrationleverage the intrinsic interoperability provided byWeb Services,Table 1: Possible forms of loose coupling in SOA [14]Tight couplingLoose couplingPhysical connectionsPoint-to-pointVia mediatorCommunication styleSynchronousAsynchronousData modelCommon complex typesSimple common types onlyType systemStrongNavigate through complex objecttreesCentral controlWeakInteraction patternControl of process logicData-centric, self-contained messageDistributed controlBindingStaticallyDynamicallyPlatformStrong platform dependenciesPlatform independentTransactionality2PC (two-phase commit)CompensationDeploymentSimultaneousAt different timesVersioningExplicit upgradesImplicit upgradesconceiving orchestration itself as a service,specified in terms of a high level language andimplemented through an engine”. Engine itself willacts as Enterprise Service Bus/ESB. An enterpriseservice bus (ESB) as the infrastructure whichenables highly interoperable among distributedsystems of services therefore make it easier todistribute business processes throughout systems indifferent platforms and technologies [14].BPEL stack as part of ESB implementationindeed competitive compare than other integrationsolutions such as Windows Workflow Foundation /WWF. Windows Workflow is designed to run asclass libraries [3] as shown in figure 1, so it can bedetermined as vendor specific and code-orientedbinding, while BPEL offers orchestration which hascentralized configuration as shown in figure 2.As defined in [4], SOA is manageable by itsnature of interaction and collaboration through twotypes of activities:1. ChoreographyChoreography tracks the sequence ofmessages that may involve multiple partiesand multiple resources, each partyparticipated in the process describe the partthey play in the interaction role and it isassociated with the public messageexchanges that occur between multiple webservices. [4]2. OrchestrationBy using orchestration, the process is alwayscontrolled from the perspective of one of thebusinessparties,itdiffersfromchoreography in case it describes a processflow between services which is beingcontrolled by a single party. [4]By using Microsoft BizTalk, it is obvious we haveagreed BizTalk is the only party responsible inmanaging and controlling messages, therefore wealways mention it as BizTalk’s orchestration.ISSN 2085-1944Figure 1: Windows Workflow Layer [3]

Implementing BPEL Compliant SOA Orchestration using Biztalk Server - Bayu Adhi NugrohoVIII-41orchestrations we were expecting extraction resultsfrom any individual orchestration in BPEL form,thereby we can conclude whether the orchestrationis BPEL compliant or not. Below here are steps tofollow on implementing SOA orchestration usingBizTalk:2.2.1Construction of Entity ClassesEntity-classes are important, since they arerepresenting encapsulation of business domainswhich are available. Those entities containattributes and methods to define business ininformation system domain.Figure 2: Orchestration Architecture [6]2.2.2BPEL would fulfill loose-coupled rolecompare than code oriented binding because itsconstruction is in XML manner, and it helps theaim of IT as a catalyst for the sustainability ofenterprise objectives [20].The principles of abstraction, encapsulation,modularity, hierarchy, typing, concurrency, andpersistence are encompassed by the object model[5]. As mentioned in[5]: ”Object-orientedprogramming is a method of implementation inwhich programs are organized as cooperativecollections of objects, each of which represents aninstance of some class, and whose classes are allmembers of a hierarchy of classes united viainheritance relationships”. Three important portionsof object-oriented programming definition [5]:1. Objects are used as fundamental logicalbuilding blocks, not algorithms.2. Each object is an instance of particular class.3. Classes are related to one another throughinheritance relationships.An entity in object oriented domain usually isrepresented by a class using ORM (object relationalmapping) technology, such as NHibernate [19].This kind of entity will be used later in functional /logical process in computer programs. Thosefunctions then will be arranged in form of services,those services need to be known by outside systemand encapsulated as web methods. BPEL enginessuch as Biztalk [9] and ActiveBPEL [1] are able tomanage those web methods using BPEL includingcreate newly service and create messages to otherengines.2.2MethodologyThis research is trying to obtain actualresults of SOA orchestration using MicrosoftBizTalk Server, current version we were using wasMicrosoft BizTalk Server 2009 integrated withMicrosoft Visual Studio 2008. By conductingWeb Services PreparationWeb Services as SOA’s implementation areinterfaces between entities and orchestration, theyact as gateways to inner entities which are availablebeing consumed by orchestration.2.2.3Import Web ServiceWeb Services are readily consumed byoutside system if they are exposed inside WSDLdocuments. WSDL document contains details ofWeb Service which are defined to be consumed bypublic, it represents how Web Service areconsumable, what kind parameters and return typesthat pass through Web Service.2.2.4Orchestration ConfigurationOrchestration is readily to be built after WebServices involved was already being set up.2.2.5Scheduler ConfigurationScheduler needs being set up to activateBizTalk’s orchestration in such timely mannerintervals.2.3Design and AnalysisFor simple case, already known businessprocesses below in goods inventory:1. Newly goods arrived, this means to addgoods inside particular store.2. Remove goods from inventory.3. Moving goods to other store.This experiment was being implemented using C#and NHibernate platform to create object entities.Each of processes mentioned above will berepresented as service, then will be sent to outerworld as web-methods.2.3.1Construction of Entity ClassesTo manage entities of goods, NHibernate isnecessarily being set up. As shown in figure 3 is theISSN 2085-1944

VIII-42The 6th International Conference on Information & Communication Technology and Systemsclass-diagram represent objects’ relationshipswhich is being used, creation of the diagram wasmade using Enterprise Architect [22]. There aretwo entities:1. Goods, this entity will act as primary itemwhich is going to be manipulated by ourservices.2. Store, this entity shows storage of goodswhich is available in each distinct store.Figure 3 : NHibernate EntitiesNHibernate have already being configuredto generate SQL as a Data Definition Language inMicrosoft SQL Server 2005, and it have workedwell, below here is the SQL which was generatedby NHibernate 2.1.2 :if exists (select 1 from sysobjects where id OBJECT ID(N’ [FK5C0EC3F79DF1EAD9]’)AND parent obj OBJECT ID(’Store’)) alter tableStore drop constraint FK5C0EC3F79DF1EAD9 ifexists (select * from dbo.sysobjects where id object id(N’Good’) and OBJECTPROPERTY(id,N’IsUserTable’) 1) drop table Good if exists(select * from dbo.sysobjects where id objectid(N’Store’) and OBJECTPROPERTY( id,N’IsUserTable’) 1) drop table Store create tableGood ( Good Name NVARCHAR(100) not null,PriceNVARCHAR(255)null,UnitNVARCHAR(255) null, primary key (GoodName)) create table Store ( Store IDNVARCHAR(255) not null, Store odNameNVARCHAR(100) null, primary key (Store ID) eignkey(GoodName) references Good2.3.2Web Services PreparationAs shown before, methods to exposeattributes in classes which are available as raw dataneed to be created. Store class already being set upcontaining 3 distinct methods, those are :1. AddAdd method is primarily used to append goodsinside a particular store.2. DeleteDelete method is primarily used to delete goodsinside a particular store3. MoveMove method is primarily used to move goodsinside a particular store to another storeThe interesting part that is available to beused as a simple test case is : although movemethod is already available inside the class, themethod can be generated inside the servicesinstead, using composition of add and deletemethod. Other method such as sum of goods in aparticular store, is available through services only.This experiment was using .asmx web servicesrather than WCF based services preferred, ourprimary concern is that .asmx web services providebackward compatibility in SOAP based nativeprotocol, rather than Microsoft-centric messagingsuch as WCF, and being used NHibernate BestPractices with ASP.NET [10] pattern to implementour code.2.3.3Import Web ServiceThe .asmx web services are importable intoBiztalk 2009 engine using: Project - Add GeneratedItems - Consume WCF Service – Metadata Files,then choose WSDL and XSD source type, otheroption using MEX endpoint is usable primarily forWCF based services. Evaluating the steps before,our must have resource is a WSDL document.2.3.4Orchestration ConfigurationNecessary orchestrations were created asshown .There were three orchestrations consist of :1. Add Goods at Store orchestration2. Remove Goods at Store orchestration3. Move Goods orchestrationWeb methods behalf on web servicetechnology for doing such thing were beingdeveloped to be consumed by BizTalk, using .asmxtechnology.2.3.5Scheduler ConfigurationAfter conducting research in BizTalk basedtechnology, we assumed to make use of httpprotocol purely as a BizTalk orchestrationactivation was quite difficult. To deal with thisproblem, our own scheduler program was created.Other schedulers options available are by usingWindows Task Scheduler or Scheduler Adapter [8],the Scheduler Adapter itself actually is a BizTalk’sISSN 2085-1944

Implementing BPEL Compliant SOA Orchestration using Biztalk Server - Bayu Adhi Nugrohocustom adapter was made by Microsoft CodeplexOpen Source Community [7]. Our schedulerprogram is mainly to drop an XML file to aspecified folder in such any scheduled timelyinterval. The folder location itself will act asBizTalk’s receive port which was being definedusing BizTalk’s File Adapter.3VIII-43RESULTSThese are results in BizTalk testing, all testswere conducted using .asmx technology stack andNHibernate.Figure 4 Add Good at Store OrchestrationFigure 5 Move Good at Store OrchestrationISSN 2085-1944

VIII-44The 6th International Conference on Information & Communication Technology and SystemsFigure 6 Remove Good at Store Orchestration3.1Result in Add Good at StoreOrchestrationThe Add Good at Store orchestration asshown in figure 4 were successfully doing itsfunction, and written here is BPEL document whichwas exported and extracted as result oforchestration. ?xml version "1.0"? process xmlns:xsd "http://www.w3.org/2001/XMLSchema"xmlns:q1 "AddGoodModule"xmlns:wsdl "http://schemas.xmlsoap.org/wsdl/"name ce "AddGoodOrchestra"xmlns ocess/" partnerLinks partnerLink name "Port Add"partnerLinkType "q1:Port AddType"partnerRole "portRole" / partnerLink name "Port 1"partnerLinkType "q1:Port 1Type"myRole "portRole" / partnerLink name "Port 2"partnerLinkType "q1:Port 2Type"partnerRole "portRole" / /partnerLinks ISSN 2085-1944

Implementing BPEL Compliant SOA Orchestration Using Biztalk Server-Bayu Adhi NugrohoVIII-45 variables variable name "IN"messageType "q1:AddGoodAtStoreMethodSoapIn"/ variable name "OUT"messageType "q1:AddGoodAtStoreMethodSoapOut"/ /variables sequence receive partnerLink "Port 1"portType "q1:PortType 1"operation "Operation 1"variable "IN" createInstance "yes" / invoke partnerLink "Port Add"portType "q1:AddGoodAtStoreSoap"operation "AddGoodAtStoreMethod"inputVariable "IN"outputVariable "OUT" / invoke partnerLink "Port 2"portType "q1:PortType 2"operation "Operation 1"inputVariable "OUT" / /sequence /process variable name "IN" messageType "q1:RemoveGoodAtStoreMethodSoapIn"/ variable name "OUT" messageType "q1:RemoveGoodAtStoreMethodSoapOut"/ /variables sequence receive partnerLink "Port 1"portType "q1:PortType 1"operation "Operation 1"variable "IN"createInstance "yes" / invoke partnerLink "Port Remove"portType "q1:RemoveGoodAtStoreSoap"operation "RemoveGoodAtStoreMethod"inputVariable "IN" outputVariable "OUT" / invoke partnerLink "Port 2"portType "q1:PortType 2"operation "Operation 1"inputVariable "OUT" / /sequence /process 3.23.3Result in Remove Good at StoreorchestrationThe Remove Good at Store orchestration asshown figure 5 were successfully doing itsfunction. Below here is BPEL document which wasexported and extracted as result of orchestration. ?xml version "1.0"? process xmlns:xsd "http://www.w3.org/2001/XMLSchema"xmlns:q1 "RemoveModule" xmlns:wsdl "http://schemas.xmlsoap.org/wsdl/"name "RemoveBz.RemoveGoodAtStoreClient"targetNamespace "RemoveOrchestra"xmlns ocess/" partnerLinks partnerLink name "Port Remove"partnerLinkType "q1:Port RemoveType"partnerRole "portRole" / partnerLink name "Port 1"partnerLinkType "q1:Port 1Type"myRole "portRole" / partnerLink name "Port 2"partnerLinkType "q1:Port 2Type"partnerRole "portRole" / /partnerLinks Result in Move Good orchestrationIt was unsuccessful thing happens in MoveGood orchestration which is shown in figure 6. Theorchestration was unable in doing its functionproperly. We were tracing the message through itsorchestration, and we found out the message wasstopped at Remove Good at Store step, but it wasable to produce output message from the WebService / SOA Remove Good which was beingconsumed and then stopped. No BPEL was ablebeing produced from this orchestration, sinceBizTalk raised error message while we were tryingto export the orchestration to BPEL.4CONCLUSION AND DISCUSSIONAfter our experiments were beingconducted, we decide to collect BPEL’s tags /syntaxes, they would be useful for future tration is not 100 % BPEL compatible, it isbeing designed for XLANG.ISSN 2085-1944

VIII-46The 6th International Conference on Information & Communication Technology and SystemsREFERENCES[1]Activebpel (2008) Activebpel nload/download.php [Accessed: February 2010].[2] Billy M (2008). Nhibernate best practiceswith asp.net, 1.2nd ed [Online]. Available rnateBestPractices.aspx[Accessed:February 2010].[3] Bruce B (2008) WF Windows Workflow in.NET 3.5. Apress: Berkeley, CA[4] Chris P (2003) Web services orchestrationand choreography [Online]. Available athttp://soa.sys-con.com/node/39800 [Accessed:February 2010].[5] Grady B (1998) Object-oriented Analysis andDesign with Applications, vol. 2nd Edition.Addison-Wesley: Santa Clara - California.[6] Kareliotis C, Vassilakis C and Georgiadis P(2007) Enhancing bpel scenarios withdynamic relevance based exception handling.In ICWS 2007. Proceedings of IEEEInternational Conference on Web Services onSalt Lake City. UT, 9 – 13 July 2007, ieee.org,pp. 751 – 758.[7] Microsoft (2006-2010) Codeplex - opensource project hosting [Online]. Available athttp://www.codeplex.com/[Accessed:February 2010].[8] Microsoft (2008) Biztalk scheduled uledtask.codeplex.com/,[Accessed: February 2010].[9] Microsoft (2009) How to export om/enus/library/aa559882(BTS.10).aspx,[Accessed : February 2010].[10] Microsoft (2009) Xlang/s language [Online].Available at S.10).aspx,[Accessed : February 2010].[11] Microsoft (2010) Windows microsoft.com/enus/netframework/aa663328.aspx, [Accessed:February 2010].[12] Microsoft (2009) Xlang/s to bpel4ws typeconversions [Online].Available at[13][14][15][16][17][18][19][20][21][22][23]ISSN 577842(BTS.10).aspx,[Accessed: February 2010].Mirko V and Enrico D and Alessandro R(2007) Engineering a bpel orchestrationengine as a multi-agent system. Elsevier Electronic Notes in Theoretical ComputerScience 66: 226-245.Nicolai M. (2007) SOA in Practice - The Artof Distributed System Design. OReilly:Sebastopol, CA.OASIS (-) Oasis contributors /contributors.php, [Accessed:February 2010].OASIS (-) Oasis foundational sponsors[Online]. Available at http://www.oasisopen.org/about/foundational sponsors.php,[Accessed: February 2010].Object Management Group (2010) Bpmninformation home [Online]. Available at:http://www.bpmn.org/, [Accessed : February2010].Parasoft (2010) Bpel engine toolkit: Bpelmaestro - parasoft [Online]. Available athttp://www.parasoft.com/jsp/products/bpel.jsp, [Accessed: February 2010].Red Hat (2009) hibernate.org - nhibernate rg/343.html,[Accessed : February 2010].Riyanarto S and Anisah H (2010) Developinginformation technology policies for enterpriseresource planning to improve customerorientation and service. IJCSNS InternationalJournal of Computer Science and NetworkSecurity 10: 82 – 93.Riyanarto S and Anisah H (2010) A serviceportfolio for an enterprise resource planning.IJCSNS International Journal of ComputerScience and Network Security 10: 144 – 156.Sparx S (2000-2010) Uml tools for softwaredevelopment and modelling - enterprisearchitect uml modeling tool [Online].Available at http://www.sparxsystems.com/,[Accessed: February 2010].Thomas E (2007) Ws-bpel 2.0 primer[Online]. Available at 3964/wsbpel-v2.0-primer.htm, [Accessed: February2010].

conceiving orchestration itself as a service, specified in terms of a high level language and implemented through an engine". Engine itself will acts as Enterprise Service Bus/ESB. An enterprise service bus (ESB) as the infrastructure which enables highly interoperable among distributed systems of services therefore make it easier to