• No results found

Tjänsteorienterad arkitektur (SOA) för integration mot upphandlingssystem

N/A
N/A
Protected

Academic year: 2022

Share "Tjänsteorienterad arkitektur (SOA) för integration mot upphandlingssystem"

Copied!
72
0
0

Loading.... (view fulltext now)

Full text

(1)

2006:62

E X A M E N S A R B E T E

Tjänsteorienterad arkitektur (SOA) för integration

mot upphandlingssystem

Ayman El-Jammal Johan Öhman

Luleå tekniska universitet Examensarbete, påbyggnadsutbildningar

Datateknik

Institutionen för Systemteknik Avdelningen för Medieteknik

(2)

 

(3)

Förord 

 

Denna rapport är en examinationsuppgift omfattande 20 poäng inom  Magisteringenjörsprogrammet i datateknik vid Luleå Tekniska Universitet. 

Examinationsuppgiften är det sista och viktigaste momentet i utbildningen och  avser att tillämpa kunskaper som förvärvats under studietiden för att 

vetenskapligt lösa en förelagd uppgift. 

 

Uppgiften har utförts i samarbete med IT‐företaget Avantra AB i Luleå under  våren 2006. 

 

Vi skulle vilja tacka vår examinator Mikael Drugge samt all personal på Luleå  Tekniska Universitet som hjälpt oss slutföra vårt arbete. Vi vill även rikta ett  stort tack till vår handledare John Landeborg och övrig personal på Avantra AB  som bidragit med tid, resurser och gott bemötande. 

 

Luleå, september 2006 

 

Ayman El‐Jammal & Johan Öhman 

 

(4)

 

(5)

Preface 

 

This report is a degree thesis consisting of 20 points within Master’s Programme  in Computer Science and Engineering at Luleå University of Technology. The  degree thesis is the final and most important part of the programme and is  intended to apply the knowledge acquired during the education period in  scientifically solving a prescribed assignment. 

 

This thesis was performed in cooperation with IT‐business company Avantra  AB in Luleå during the spring of year 2006. 

 

We would like to thank our examiner Mikael Drugge and all personnel at Luleå  University of Technology who helped us complete our work. We would also  like to thank our supervisor John Landeborg and all other personnel at Avantra  AB, for all the time and efforts they contributed with. 

 

Luleå, September 2006 

 

Ayman El‐Jammal & Johan Öhman 

 

(6)

 

(7)

Sammanfattning 

 

Det finns många olika typer av affärssystem på marknaden och företagen har  investerat i egna unika IT‐lösningar, vilket har medfört att man har låst in sig i  den egna tekniska plattformen genom bland annat punkt till punkt‐

implementationer. För att råda bot mot detta är det då önskvärt att olika system  och applikationer ska kunna kommunicera med varandra genom att utbyta  data på ett standardiserat sätt. För att uppnå dessa integrationsmål har en  tjänsteorienterad arkitektur, Service Oriented Architecture (SOA) växt fram.  

 

Syftet med denna uppgift är att undersöka möjliga metoder för att utveckla en  tjänstebaserad arkitektur för integration mot Avantra AB:s upphandlings‐

system, Avantra Upphandling. Detta utifrån krav och direktiv som ställdes av  Avantra samt de möjligheter och begränsningar som styrs av deras utvecklings 

‐miljö, ‐verktyg och ‐rutiner. Efter utförda analyser av lämpliga metoder har en  valts och en prototyp, delmängd av en fullskalig integrationslösning utvecklats. 

 

Efter direktiv från Avantra kom analysen att omfatta Microsofts integrations‐

plattform BizTalk samt olika sätt att utveckla tjänstebaserade lösningar med  Web Services. 

 

Nyckelord: 

‐ B2B 

‐ Integration 

‐ Microsoft BizTalk 

‐ SOA 

‐ SOAP 

‐ Web Services 

‐ WSDL 

‐ XML 

 

(8)

 

(9)

Abstract 

 

There are many types of business systems on the market and companies have  invested in own unique IT‐solutions that have resulted in companies limiting  themselves to their own technical platforms, through point‐to‐point 

implementations among other things. To solve this, it is desirable that different  systems and applications should be able to communicate with each other by  exchanging data in a standardised manner. These aims of integration can be  reached by using Service Oriented Architecture (SOA). 

 

The purpose of this assignment is to examine possible methods for deployment  of a Service Oriented Architecture for integrations with Avantra AB’s 

procurement system, Avantra Upphandling. This is to be done with the 

requirements and directives given by Avantra and in consideration with the  possibilities and limitations settled by their development environment, tools  and routines. After analysing adequate methods, one was chosen and a  prototype, a subset of a complete integration solution was developed. 

 

With the directives given by Avantra, the analysis consisted of Microsoft’s  integration platform BizTalk and various ways of developing service‐based  solutions using Web Services. 

 

Key words: 

‐ B2B 

‐ Integration 

‐ Microsoft BizTalk 

‐ SOA 

‐ SOAP 

‐ Web Services 

‐ WSDL 

‐ XML 

 

(10)

 

(11)

Innehållsförteckning 

 

1 Inledning ... 3

1.1 Bakgrund ... 3

1.1.1 Avantra AB ... 3

1.1.2 Författarnas bakgrund... 4

1.2 Syfte ... 4

1.3 Direktiv... 4

2 Teori ... 5

2.1 Avantra Upphandling ... 5

2.2 Tjänstebaserad arkitektur; SOA... 5

2.2.1 Vad är SOA? ... 5

2.2.2 Vilka delar ingår i en SOA? ... 6

2.2.3 Fördelar... 7

2.2.4 Nackdelar... 8

2.3 XML ... 8

2.3.1 Fördelar med XML ... 9

2.3.2 XML Schema (XSD) ... 9

2.4 SOAP... 10

2.5 XML Web Services... 11

2.5.1 UDDI ... 14

2.5.2 WSDL... 14

2.5.3 Code‐first .NET Web Services... 15

2.5.4 Contract‐first .NET Web Services ... 15

2.6 Microsoft BizTalk Server 2006 ... 16

2.6.1 Vad är BizTalk? ... 16

2.6.2 Vilka delar består BizTalk av?... 16

2.6.3 Hur används och fungerar BizTalk?... 17

3 Metod... 25

4 Utvärdering/resultat ... 27

4.1 Analys av Avantras behov ... 27

4.2 Analys av BizTalk som integrationslösning(plattform) ... 28

4.2.1 Gränssitt och funktionalitet ... 28

4.2.2 Säkerhet och transaktionshantering ... 28

4.2.3 Driftövervakning ... 29

4.3 Analys av egenutvecklad integrationslösning med .NET Web  Services ... 30

4.3.1 Gränssitt och funktionalitet ... 30

4.3.2 Säkerhet och transaktionshantering ... 33

(12)

4.3.3 Driftövervakning ... 34

4.4 Resultat av analyser/Val av integrationslösning... 35

5 Integrationslösning Avantra‐IBS ... 37

5.1 Introduktion ... 37

5.2 Krav ... 37

5.2.1 Bas ... 37

5.2.2 Extra ... 37

5.3 Översiktsbeskrivning... 38

5.3.1 Databas ... 38

5.3.2 Web Service ... 38

5.3.3 Testklient ... 39

5.4 Leveransvillkor ... 40

5.4.1 Leveransplats ... 40

5.4.2 Leveranstidpunkt... 40

5.4.3 Underhåll... 40

6 Diskussion... 41

7 Referenser... 43

7.1 Böcker ... 43

7.2 Rapport/uppsats/avhandling... 43

7.3 Tidningsartiklar ... 43

7.4 Elektroniska medier ... 43

8 Bilagor... 45

8.1 Ordlista... 45

8.2 Översiktsbild av integrationslösning ... 49

8.3 Datamodell ... 51

8.4 Web Servicens parametrar ... 53

8.5 Teknisk gränssnittsdesign för Web Service ... 55

8.6 Testklient ... 57

8.7 SOAP‐meddelanden ... 59

 

(13)

1 Inledning  

1.1 Bakgrund 

Det finns många olika typer av affärssystem på marknaden och företagen har  investerat i egna unika IT‐lösningar, vilket har medfört att man har låst in sig i  den egna tekniska plattformen genom bland annat punkt till punkt‐

implementationer. För att råda bot mot detta är det då önskvärt att olika system  och applikationer ska kunna kommunicera med varandra genom att utbyta  data på ett standardiserat sätt. Vid införandet av nya system bör dessa kunna  kommunicera med den befintliga IT‐miljön. 

 

För att uppnå dessa integrationsmål har en tjänsteorienterad arkitektur, Service  Oriented Architecture (SOA) växt fram. Många förutspår att SOA kommer att  slå igenom på bredfront och anledningen till detta är att det finns färdiga  industristandarder som stora programutvecklande företag har enats om. Dessa  möjliggör ett plattformoberoende och därmed en stabil grund för olika 

integrationslösningar. 

 

Internets framväxt som medium har också medfört att det går att utveckla  billiga lösningar med enorm spridning. I många sammanhang används Web  Services för att skapa en tjänsteorienterad arkitektur. Web Services möjliggör  överföring av meddelanden eller åtkomst till komponenter över Internet. 

Kommunikationen kan ske på ett säkert sätt mellan två parter med olika  plattformar och genom brandväggar. Eftersom det finns ett stort integrations‐

behov har företag som Microsoft (Biztalk), IBM (WebSphere) och SUN  (Seebeyond) gett sig in på marknaden med egna produkter för att hantera  affärsprocesser genom bland annat en tjänstebaserad arkitektur. 

 

Sammanfattningsvis torde företagen som använder sig av SOA‐arkitekturen  öka den interna effektiviteten radikalt samtidigt som de skapar ökad kundnytta  genom att koppla ihop externa och interna processer. Har ett system dessa  egenskaper, kan det ofta ses som en avgörande orsak till ett affärssystems  framgång på marknaden. 

1.1.1 Avantra AB 

Examensarbetet har utförts i samarbete med Luleå baserade IT‐företaget 

Avantra AB. Verksamheten omfattar konsulttjänster och produktutveckling 

med inriktning mot IT‐området. Avantras kärnverksamhet riktar sig mot en 

produkt kallad Avantra Upphandling. Produkten stödjer upphandlare i framför 

allt offentlig sektor men även stora företag i sina upphandlingar genom hela 

upphandlings‐ och avtalsprocessen. 

(14)

1.1.2 Författarnas bakgrund  

Examensrapporten (20 poäng) skrivs som en avslutande del inom 

Magisteringenjörsprogrammet i datateknik (160 poäng) vid Luleå Tekniska  Universitet. Utbildningen är en påbyggnadsutbildning till en treårig 

Högskoleingenjörsutbildning i datateknik (120 poäng). Arbetet görs inom  ämnesområdet programvaruteknik som varit inriktningen under utbildningen.  

1.2 Syfte 

Syftet är att analysera och ta fram en metod för att utveckla tjänstebaserade  lösningar med avseende på Avantras krav och direktiv och utveckla en  prototyp, delmängd av en fullskalig integrationslösning. Analysen omfattar  Microsofts integrationsplattform BizTalk samt olika sätt att utveckla 

tjänstebaserade lösningar med Web Services. 

 

Man vill finna en allmän integrationslösning för export och import mellan  kunders externa system och Avantra Upphandling. Arbetet består av att ta fram  en lösning som möjliggör delning av data och processer mellan godtycklig  applikation eller datakälla, oberoende av plattform. Detta skall kunna göras  utan omfattande ändringar i applikationer och lager/datastrukturer. 

 

Det är sedan tänkt att Avantra ska kunna följa designmönstret som tas fram för  att i slutändan utveckla i en fullskalig tjänstebaserad integrationsplattform.  

1.3 Direktiv 

Avantra har givit som direktiv att företaget vill standardisera sina rutiner för att  effektivisera införandet och underhållet av integrationer mot andra system och  på så sätt uppnå fördelar gentemot sina konkurrenter. För systemets export och  import av data mot externa system har varje lösning implementerats som en  kundunik punkt till punkt‐lösning, vilket medför att stora resurser går åt vid  införande och underhåll av integrationen. Avantra vill att integrationslösningen  som ska utvecklas ska ligga som ytterligare ett lager i systemet och utnyttja så  mycket av den funktionalitet som redan finns, främst genom databasens  lagrade procedurer, så kallade Stored Procedures. Om ytterligare programvara  ska installeras ska den fungera i den existerande miljön för Avantra 

Upphandling hos kunden. All ny funktionalitet (kod) ska implementeras i  C#/.NET.  

 

Under en senare del av projektet fick vi till uppgift att utveckla en lösning för  kunden IBS som bygger på den genomförda analysen av integrationslösning.  

 

(15)

2 Teori 

2.1 Avantra Upphandling 

Avantra Upphandling, AU 5.0 är utvecklat och fungerar i en Microsoft‐miljö  innehållande Windows 2000 Server/XP Professional, IIS‐server, SQL Server 2003  och .Net Framework. Systemet är uppbyggt i en skiktad lösning av lager. 

Lagerstrukturen består av ett gränssnitt, ett affärslager och ett datalager. 

Gränssnittet och lagren är programmerade i .NET Framwork 1.0 och högre,  med hjälp av Visual Studio. Gränssnittet är ett tunt lager som kommunicerar  med affärslagret, Busniess Object Layer, som i sin tur kommunicerar med  datalagret, Data Access Layer. Kommunikationen mellan lagren sker via COM+ 

och .NET Remoting. SQL Server är grundstommen i systemet och mycket av  funktionaliteten definieras i databasen med hjälp av bland annat lagrade  procedurer, så kallade Stored Procedures. Till systemet finns också ett antal  ASP‐implementerade webbmoduler. 

2.2 Tjänstebaserad arkitektur; SOA  

2.2.1 Vad är SOA? 

Oasis Reference Model for Service Oriented Architecture 1.0 beskriver SOA  enligt följande: ʺService Oriented Architecture (SOA) is a paradigm for 

organizing and utilizing distributed capabilities that may be under the control  of different ownership domains.ʺ [16] 

 

SOA kan ses som en arkitekturutveckling eftersom den bygger på arkitekturer  och standarder som kom före den. [19] 

 

Applikationsintegration är en av de viktigaste frågorna företag ställs inför. 

Systemtillgänglighet, ‐pålitlighet och ‐skalbarhet belastar företagen. Med  dagens krav är SOA den bästa skalbara lösningen för applikationsarkitekturer. 

[9] 

 

SOA är alltså ett systemarkitektiskt koncept som beskriver användningen av  tjänster för att uppfylla de affärsmässiga kraven på IT‐system. Tjänsterna  samverkar baserat på en formell definition eller kontrakt som är fristående från  den underliggande plattformen och programspråken. Gränssnittet gömmer den  språkspecifika tjänsteimplementationen. Mjukvarukomponenterna blir väldigt  återanvändbara eftersom gränssnittet är oberoende av den underliggande  implementationen. På så sätt kan exempelvis en tjänst utvecklad i C#/.NET på  Windows Server‐miljö anropas av en Java‐applikation som exekveras i en  UNIX‐miljö. [19] 

 

SOA förknippas ofta med webbtjänster baserade på XML, SOAP, WSDL och 

(16)

UDDI, men i princip kan SOA byggas med vilken tjänstebaserad teknik som  helst. De första tjänstebaserade arkitekturerna byggdes med DCOM eller Object  Request Broker (ORB) baserad på CORBA. Men SOA:s popularitet har ökat  kraftigt i och med Web Services. [19] 

2.2.2 Vilka delar ingår i en SOA? 

Enligt Hashimi [9] finns det fyra nyckelkomponenter som spelar en viktig roll i  en tjänstebaserad arkitektur; tjänster, meddelanden, dynamisk upptäckt, och  Web Services.  

 

Tjänster 

Tjänsters funktionalitet exponeras med tre egenskaper: 

1. Gränssnittets kontrakt är plattformsoberoende. Vilket innebär att en  klient från en valfri plats, med valfritt programmeringsspråk och  operativsystem kan använda tjänsten. 

2. En tjänst kan vara dynamiskt lokaliserad och involverad, vilket innebär  att en klient kan använda denna för att hitta en tjänst man eftersöker. 

3. Tjänsten i sig är en fristående del och detta innebär att tjänsten  upprätthåller sitt eget tillstånd.  

 

Meddelanden 

De som tillhandhåller och de som använder sig av en tjänst kommunicerar  genom meddelanden. Tjänstens gränssnitt beskriver vad tjänsten har för  argumenttyp och returtyp och eftersom tjänsten är plattform/språkoberoende  måste teknologin för meddelandet inte veta något om den specifika plattformen  eller programspråket klienten kommer att använda. Just därför är meddelandet  oftast ett W3C Standard XML‐dokument som bekräftas/valideras mot ett XML‐

schema.  

 

Dynamisk upptäckt 

Dynamisk upptäckt är en viktig del av SOA och på en hög nivå består SOA av  tre huvuddelar; tjänsteleverantör, tjänsteanvändare (klienter) och 

katalogtjänsten. Katalogtjänsten fungerar som en mellanhand för de som  tillhandahåller och de som använder tjänster. De som tillhandahåller tjänsten  registrerar sig med en katalogtjänst och användaren gör en förfrågan mot  katalogtjänsten för att hitta lämpliga tjänsteleverantörer. De flesta 

katalogtjänster organiserar tjänsterna och kategoriserar dem. Genom att  inbädda en katalogtjänst i en SOA åstadkommer man en lösning som: 

 

1. Är skalbar, man kan lägga till tjänster eftersom. 

2. Håller klienterna åtskilda från tjänsteleverantörerna. 

3. Tillhandahåller uppdatering för tjänsten. 

4. Tillhandahåller söktjänst för klienter. 

5. Tillåter klienter att välja mellan olika tjänsteleverantörer under körning. 

(17)

 

Web Services 

Web Services är en implementation av SOA och beskrivs i kapitel 2.5. 

2.2.3 Fördelar 

• SOA kan hjälpa affärsverksamheten att snabbare reagera på ändringar i  markandsvillkoren och på så sätt bli mer kostnadseffektiva. [19] 

• Löst kopplade applikationer.  

När applikationerna är löst kopplade sker den enda interaktionen mellan  applikationerna i det publika gränssnittet. Från utvecklares synvinkel  betyder det oftast att ändringar i en applikation inte påverkar andra  applikationer. [12] 

• Lokal‐transparens. 

Betyder att användaren av tjänsten inte behöver bekymra sig om var  implementationen av tjänsten återfinns. Detta kan vara användbart då  servern där tjänsten är implementerad flyttas eller när en klient vill  lokalisera vilken tjänsteimplementation som för tillfället svarar bäst. [12] 

• Återanvändning av kod. 

Innebär att återanvändning av kod kan ske över olika plattformar och  programspråk. Man behöver exempelvis inte skriva om en Java‐metod  som fungerar för sitt ändamål till en C#‐metod. [12] 

• Fokuserar på utvecklarens roll.  

En tjänstebaserad arkitektur brukar kräva att applikationer har en  flerlagrigstruktur. Kunskap om hur olika lager arbetar kan åtskiljas  mellan utvecklarna, exempelvis kan utvecklaren som är ansvarig för  dataåtkomstlagret ha expertkunskap inom SQL, ADO.net etc. och  utvecklaren som ansvarar för autentiseringslagret har expertkunskap  inom områden som LDAP, WS‐securtiy etc. [12] 

• Bättre testning. 

Enklare att testa tjänstegränssnitten genom testprocedurer där varje  element testas var för sig. [12] 

• Parallell utveckling.  

Utvecklare kan jobba självständigt när de har samma gränssitt att jobba  mot. Så när gränssnittet är färdigutvecklat kan varje utvecklare jobba  med sin del av tjänsten. [12] 

• Bättre skalbarhet. 

Lokal‐transparensen gynnar skalbarheten. [12] 

• Bättre tillgänglighet. 

Lokaltransparensen gynnar tillgängligheten. [12] 

• Bättre och enklare förvaltning och underhåll.  

Lättare att lokalisera fel eller byta ut komponenter i ett tjänstelager än i  ett system. [14] 

 

(18)

• Minskade hårdavarukostnader  Tjänster är centraliserade. [8] 

• Bättre säkerhet 

Ökad säkerhet genom fler lager med fler verifieringar både på klient‐ och  tjänstesidan. [8] 

• Bättre informationskvalitet. [14] 

• Tydligare ägarskap av information och tjänster. [14] 

• Utnyttjar redan existerade investeringar i teknologin. [8] 

2.2.4 Nackdelar 

• Beroende av utomstående system som man ej har kontroll över. [5] 

• Kostsam inköpsport för att bygga om till tjänstebaserad arkitektur. [6] 

• SOA används inte i många system idag, detta gör att det inte finns  många tillgängliga tjänster och få med kunskaper om hur man bygger  dem. [5] 

• Kräver mer teknik för säkerhet och transaktioner. [14] 

• Kräver mer versionshantering. [14] 

• Ett SOA‐projekt kräver ett brett samarbete mellan olika experter inom  olika områden. 

2.3 XML 

eXtensible Markup Language (XML) är ett metaspråk, definierad av World  Wide Web Consortium (W3C), som i enklaste mening består av regler och  instruktioner för hur strukturerad data kan beskrivas i klartext hellre än genom  binära representationer. [1] 

 

XML har lett till stora förändringar i mjukvaruutvecklingen främst i tre  avseenden; dataoberoende, arkitektur och mjukvaruutveckling. [1] 

 

• Dataoberoende: 

Datat i XML, som är ren databeskrivning, är inte bundet till något 

specifikt programmeringsspråk, operativsystem eller transportprotokoll,  utan kan röra sig fritt genom att använda olika webbprotokoll. 

Transportprotokoll som exempelvis HTTP har haft en storskalig  inverkan på XML:s gångbarhet och öppnat dörrarna för alternativ till  CORBA, RMI, och DCOM, som inte fungerar över TCP/IP. 

• Arkitektur: 

XML‐teknologin skapar nya möjligheter att utnyttja den redan 

existerande infrastrukturen på webben och möjliggör en övergång från 

objektbaserade distributionssystem till distributioner baserade på Web 

Services som kan bli upptäckta, är tillgängliga och kan kopplas ihop 

genom den publika webbteknologin.  

(19)

• Mjukvaruutveckling: 

Utvecklingen av mjukvaror under 1970‐ respektive 1980‐talet bestod av  applikationer skapade på ett monolitiskt sätt i stora projekt för att lösa  vissa specifika problem. Detta sätt att utveckla innebar ofta att man  försökte ta itu med alla problem samtidigt och på grund av projektets  storlek var mjukvaran ofta olämplig att förändra i efterhand, exempelvis  för att lägga in en ny funktionalitet eller instruktioner för bearbetning av  teknologiförändringar. Under 1990‐talet utvecklades en ny modell för  mjukvaruutveckling, genom XML, som baserades på enkelhet och  samverkan. Det nya sättet innebar att mjukvaran skapades med hjälp av  olika byggnadsblock som kunde kombineras med varandra eller med  andra byggnadsblock som redan existerade eller skulle skapas senare. 

2.3.1 Fördelar med XML 

• XML‐filer är läsbara för människor. Filerna är designade som text så att  det blir lätt att ta del av innehållet. Till skillnad från binära datafiler. 

• Utbredd spridning av industrier som stödjer XML. Flertalet verktyg och  nyttoprogram tillhandahålls tillsammans med webbläsare, databaser och  operativsystem för att göra det lättare och mer kostnadseffektivt för små  och medelstora företag/organisationer att importera respektive exportera  data i XML‐format. 

• Stora relationsdatabaser är numera kapabla att läsa respektive generera  XML‐data. 

• En stor mängd teknologier som stödjer XML finns tillgängliga för att  översätta och tranformera XML‐data för att visa webbsidor och generera  rapporter. [1] 

2.3.2 XML Schema (XSD) 

När XML används för att utbyta data mellan klienter, partners och leverantörer  är det av vikt att kunna definiera hur XML‐dokumenten borde vara 

strukturerade. Det är då ett schema behövs. [1] 

 

”Schema” är en allmän term som beskriver dataformen. I början användes  termen för att beskriva databasstrukturer. Ett schema är en formell specifikation  av grammatiken för ett specifikt XML‐vokabulär. Scheman kan användas vid  validering av XML‐dokuments innehåll, för att fastställa om innehållet stämmer  överrens med den grammatiska beskrivningen angiven i XML Schema. Ett  schema tillhandahåller även en beskrivning av XML‐strukturen till andra, som  möjliggör utbytet av strukturerad information mellan samverkande 

applikationer och affärspartners oberoende av plattform och mellanliggande  program. [1] 

 

 

(20)

Det finns två typer av scheman i XML‐världen; DTD och XML Schema. DTD  fokuserar i första hand på struktur och möjliggör för designern av XML‐

vokabulären att specificera lämpliga element och attribut för en uppsättning  instanser av XML‐dokument. Dock har DTD begränsningar när det gäller  datatyper som kan definieras. XML Schema är en nyare teknologi, antagen som  officiell rekommendation av W3C i maj 2001. Den är ämnad att tillhandahålla  en typ av detaljerad struktur som ofta associeras med programmeringsspråks  definitioner av datatyper. En fördel med XML Schema är möjligheten att  validera att XML‐datat som utbyts är i korrekt format, före vidare bearbetning. 

[1] 

 

• DTD (Document Type Definition): 

‐ Definierar strukturen för ett XML‐dokument. 

‐ Datatyper för olika element är begränsade till text. Detta innebär att  element endast kan innehålla text. DTD kan heller inte kontrollera om  texten består av numeriska eller alfabetiska tecken. 

• XML Schema: 

‐ Definierar strukturen för ett XML‐dokument. 

‐ Flertalet fördefinierade datatyper finns tillgängliga. 

‐ Det är möjligt att definiera komplexa datatyper som kan mappas ihop  med applikationsspecifika datastrukturer. 

‐ Möjliggör validering av XML‐data.  

2.4 SOAP 

Simple Object Access Protocol (SOAP) är ett XML‐baserat protokoll som gör det  möjligt för klienter och leverantörer att kommunicera med varandra och utbyta  XML‐data i en decentraliserad distribuerad miljö.  Protokollet består av tre  delar; ett omslag som definierar ramverket för ett meddelandes innehåll och  hur det ska behandlas, en uppsättning regler för att definiera datatyper och en  konvention för att representera Remote Procedure Calls (RPC) och dess svar. 

[20] 

 

SOAP skapades för webben, som en kombination av XML och HTTP. Den  öppnade för nya möjligheter för utbyte av distribuerat data och interaktion i  löst kopplade webbmiljöer. Den främsta förändringen som SOAP ledde till var  möjligheten att transportera data varsomhelst över webben. [1] 

 

Före SOAP fanns det två principiella valmöjligheter att transportera data  mellan olika partners. Den första var att bygga ett vidsträckt nätverkområde  som spände över en bred geografisk region och låta partners ansluta sig till det. 

Detta sätt var framtaget genom Electronic Data Interchange (EDI), där  meddelanden och protokoll för dataöverföring definierades medan 

utformningen av nätverk lämnades fritt åt varje partner. Resultatet blev en 

samling av olika nätverk som i stort sett låste in sina partners och gjorde det 

(21)

svårt och dyrt att nå ut till andra EDI‐nätverk och varva in nya partners. [1] 

 

Det andra alternativet framtogs genom Common Object Request Broker  Architecture (CORBA), Remote Method Invocation (RMI) och Distributed  Component Object Model (DCOM) och innebar att en infrastruktur för 

distribuerande objekt som kördes över Internet byggdes. Problemet här var att  varje partner fick bestämma själv om vilket protokoll som ska användas och  ligga över TCP/IP för att hantera kommunikationen av interna objekt. CORBA  valde Internet Inter‐ORB Protocol (IIOP), RMI valde Java Remote Method  Protocol (JRMP) och DCOM valde Oject Remote Procedure Call (ORPC). På det  sättet kunde behovet att använda samma underliggande nätverk reduceras. 

Dock var den stora nackdelen att varje partner kunde utan några som helst  problem kommunicera internt med sina egna, men partnerna kunde inte 

kommunicera externt med varandra. Dessutom var det omöjligt att direkt nå ut  till webben utan att använda sig av speciella kapslar som innebar att nya lager  måste läggas till en redan komplex arkitektur. [1] 

 

Det nya aternativet där SOAP används för att transportera data kombinerar  XML:s dataegenskaper och HTTP:s dataöverföringsegenskaper och har ingen  av nackdelarna som både EDI och strikt kopplade system för distribuerade  objekt (CORBA, RMI och DCOM) hade. Med SOAP upphör beroendet mellan  data och transport och nya möjligheter för utbyte av distribuerat data via löst  kopplade system uppstår. [1] 

 

Sedan dess uppkomst 1998 har SOAP använts i allt större skala av många  aktörer inom mjukvarubranschen: 

• Web Services ramverk använder SOAP som transportteknologi för att  skicka data och XML‐RPC över distribuerade närverk. 

• Microsoft intar SOAP som en del av sin .NET‐verksamhet. 

• Sun använder SOAP i sitt Web Services ramverk, Sun Open Net  Environment (Sun ONE). 

• IBM har haft en stor roll i specifikationen av SOAP och har en mängd  olika verktyg som stödjer SOAP, bland annat verktyg som möjliggör  integrering av SOAP i Java. 

• Olika distribuerare av CORBA Object Request Broker (ORB) stödjer  SOAP i form av CORBA‐to‐SOAP bryggor. [1] 

2.5 XML Web Services 

XML Web Services, ofta förkortat Web Services, är en applikationstyp utan ett  (grafiskt) användargränssnitt. Den anropas istället av andra applikationer som  fungerar som klienter mot gränssnittet och kan använda sig av de olika 

metoderna som är definierade i Web Servicen. Dataformatet som används av  Web Servicen och klientapplikationen är eXtensible Markup Language (XML). 

Kommunikationen sker genom att Simple Object Access Protocol (SOAP)‐

(22)

meddelanden innehållande XML‐datat skickas mellan parterna via exempelvis  transportprotokollet HTTP. Detta gör det möjligt för olika program att 

kommunicera med varandra på ett standardiserat sätt oberoende av  programmeringsspråk eller plattform. [15] 

 

Genom att utgå från en detaljerad beskrivning av gränssnittsstrukturen för en  viss Web Service är det möjligt att skapa en klientapplikation som anropar Web  Servicen. En sådan beskrivning distribueras genom ett XML‐dokument som  kallas Web Service Description Language (WSDL). 

 

Tillvägagångssättet för att utveckla Web Services kan ske med hjälp av olika  metoder. Två av dessa utvecklingsmetoder är Code‐first respektive Contract‐

first och beskrivs under särskild punkt.  

 

Web Services utgör en lösning på bred front för det industriella behovet av en  flexibel och effektiv miljö för affärssamarbete. Tekniskt sett är det ett sätt att  länka ihop löst kopplade system genom en teknik som inte binder dessa till ett  specifikt programmeringsspråk, komponenttyp eller plattform. Praktiskt taget  utgör Web Services en tydlig affärsprocess som med hjälp av stödda protokoll  beskriver och exponerar sig för webbanvändare, anropas av en extern (eng. 

remote) användare samt returnerar ett svar. [1] 

 

• Beskriver: Web Services beskriver dess funktionalitet och attribut för att  andra applikation ska förstå hur dessa ska användas. 

• Exponerar: Genom ett register över olika Web Services som består av  o White pages; innehåller grundläggande information för 

tjänstedistribuering. 

o Yellow pages; listar tillgängliga Web Services med hjälp av olika  kategorier. 

o Green pages; beskriver hur anslutningen till och användningen av  en specifik webbtjänst (Web Service) går till. 

• Anropas: När en webbtjänst har lokaliserats, kan en extern applikation  anropa tjänsten. 

• Returnerar ett svar: Ett anrop till en webbtjänst resulterar i ett svar som  returneras till externa applikationen som skickade anropet. 

 

Drivkraften bakom Web Services är önskan att möjliggöra för 

affärsverksamheter att använda sig av Internet för att publicera, upptäcka och  sammankoppla andra Web Services genom den globalt stödda SOAP‐tekniken. 

Det faktum att Internet är det enda som är nödvändigt för att en Web Service  ska levereras och fungera innebär att såväl ärvd programkod och data som  objektsystem kan koppla upp sig mot Web Service‐plattformen. Dessa 

möjligheter förväntas resultera i nya produkter och affärsprocesser med globalt 

omfång som kan levereras över trådbaserade respektive trådlösa nätverk. Hur 

(23)

dessa ska framkomma är ännu okänt. Dock indikerar utvecklingen av webben,  XML och SOAP att nya teknologier är på frammarsch. [1] 

 

Vad kvalificeras som Web Services? 

Vilken mjukvarukomponent eller applikation som helst kan exponeras som en  Web Service så att den kan upptäckas och användas av en annan komponent  eller applikation. Detta kan röra sig om allt från en enkel filmrecension eller  väderprognos till ett komplext komplett resepaket som inkluderar hotell‐,  flygbokningar och restaurangbeställningar. Web Services frambringar en  teknisk infrastruktur som försäkrar att tjänster, även från olika leverantörer,  kommer att samverka och har fördelen att ingen avancerad kunskap krävs i hur  olika tjänster passar ihop för att allt ska fungera. [1] 

 

Möjlighet och risk 

Web Services utgör en ny form för distribuering och sammankoppling av  mjukvaror baserad på föreställningen om tjänster som är globalt tillgängliga  över webben hellre än objekt till objekt kopplingar över begränsade nätverk. 

Denna globala tillgänglighet är väldigt attraktiv ur ett finansiellt perspektiv. 

Finansiellt incitament innebär nya möjligheter genom skapandet av privata  handelsnätverk, ökade intäkter genom expanderande distributionskanaler samt  minskade lager‐ och transaktionskostnader. [1] 

 

Förbättrat samarbete mellan kunder, partners och leverantörer utlovas av Web  Services. Möjligheter tillhandahålls för att minska tiden och kostnaden för  integration jämfört med existerande lösningar för integration mellan olika  affärsapplikationer och business‐to‐business (B2B) lösningar. Det finns även  lösningar för att effektivisera leveransrutiner, snabbt svara på förändringar på  marknaden och kundpreferenser samt förbättra kundservicen genom att låta  kunder och affärspartners ha tillgång till kärnsystem. [1] 

 

Däremot är visionen kring Web Services relativt ny och inte helt riskfri. Trots  dess signifikanta potential, är det fortfarande oklart hur stor roll Web Services  kommer att ha i ett större perspektiv. Det är dock förväntat att ha en avgörande  roll för leveranser av enkla tjänster, men tills tekniken mognar kommer 

komplexa partnerinteraktioner att fortfarande kräva ett mänskligt element för  att fastslå överenskommelser. Detta kommer att ske med hjälp av Web Services  protokollen UDDI och WSDL, som tillsammans med SOAP är bland 

huvudkomponenterna i plattformen. [1] 

 

(24)

  UDDI 

SOAP 

HTTP  SMTP

FTP 

WSDL

Fig. 2.1 Viktiga tekniker för Web Services. 

2.5.1 UDDI 

Universal Description, Discovery and Integration (UDDI) är ett protokoll som  används för att beskriva Web Services‐komponenter som möjliggör för 

affärsverksamheter att registrera och marknadsföra sina tjänster via en  webbaserad katalogtjänst. Protokollet härstammar från samarbete och  överenskommelse mellan Microsoft, IBM och Ariba om en XML‐baserad 

specifikation för att etablera ett register över affärsverksamheter och tjänster på  Internet, med start i augusti år 2000. [1] [21] 

 

Kärnan i UDDI består i stort sett av UDDI Business Registry som är en global,  publik, webbaserad katalogtjänst som tillhandahåller affärsverksamheter ett  enhetligt sätt att beskriva (registrera) sina tjänster, upptäcka varandras tjänster  samt att ta del av detaljerna som beskriver uppkopplingen mot och 

interaktionen med mjukvarorna som implementerar de olika tjänsterna. [1] [21] 

 

I funktionalitetsstacken som bygger på TCP/IP, HTTP och XML, definieras ett  lager av UDDI ovanför SOAP‐lagret. Där definieras en XML‐baserad 

infrastruktur som gör det möjligt för mjukvaror att automatisk upptäcka  tillgängliga tjänster på webben och använder SOAP‐protokollet för att anropa  dessa tjänster. [1] [21] 

 

DISCO 

Microsoft har en egenutvecklad mekanism, DISCO, för att dynamiskt lokalisera  Web Services för klienter. Mer specifikt så hjälper DISCO klienterna att hitta  WSDL‐filerna som beskriver anropssyntaxen för Web Services. DISCO stöds  inte utanför Microsoft‐miljön och har i hög grad ersatts av UDDI. [13] 

 

2.5.2 WSDL 

WSDL står för Web Services Description Language och är en XML‐baserad 

standard för Web Services, utvecklad av W3C. Den definierar ett Web Service‐ 

(25)

gränssnitt och detaljer för implementation. Detaljerna i WSDL kan anskaffas ur  UDDI‐poster som beskriver SOAP‐meddelandena som kommer att användas  för en viss Web Service. [1] [20] 

 

Ett WSDL‐dokument är uppbyggt av flera beståndsdelar, element. [22] 

• Definitions, rotelementet på dokumentet definierar namnet på tjänsten  och deklarerar de namnrymder som används. 

• Types, definierar alla datatyper som används av tjänsten. 

• Message, definierar in‐ och ut‐parametrarna för tjänsten.  

• Port type, binder ihop metoderna med meddelanden deklarerade i  Message‐delen. I Port type definieras alla operationer som en metod  använder sig av och vilka meddelanden som används av respektive  operation. En operation kan vara uppbyggd på fyra olika sätt:

o One‐Way, tjänsten tar emot ett meddelande.

o Request‐response, tjänsten tar emot ett meddelande och skickar  tillbaka ett svar.

o Solicit‐response, tjänsten skickar ett meddelande och tar emot ett  svar.

o Notification, tjänsten skickar ett meddelande.

• Binding, definierar meddelandeformat och protokolldetaljer för  operationer och meddelanden definierade av en viss porttyp. 

• Service, definierar namnet på tjänsten, var den finns och grupperar  ihop  tillhörande portar. 

2.5.3 Code‐first .NET Web Services 

När Code‐first används som utvecklingsmetod skapas all kod inklusive all  funktionalitet för den tänka Web Servicen i första steget. Beskrivningen (WSDL‐

fien) av och XML‐schemat för tjänsten skapas eller genereras i efterhand. [18] 

 

1. Börja med att skapa en ASMX‐fil med all kod som definierar klasser,  metoder, variabler och operationer för den tänka Web Servicen. 

2. Generera ett XML‐schema och WSDL‐fil utifrån den skapade ASMX ‐ filen. 

3. Iterera/upprepa. 

2.5.4 Contract‐first .NET Web Services 

I första steget för denna utvecklingsmetod skapas schemastrukturen (XML  schema) för den tänka webbtjänsten. Schemat fungerar här som ett kontrakt,  varav namnet, som alla parter inblandade i utvecklingen av tjänsten ska komma  överrens om före fortsatt utveckling. [18] 

 

1. Börja med att definiera Web Servicens struktur och XML‐meddelanden 

genom ett XML‐schema. 

(26)

2. Defineira operationerna genom en WSDL‐fil som har XML‐schemat som  referens. 

3. Generera en ASMX‐fil innehållande koden för Web Servicens  struktur/skal utifrån WSDL‐filen som skapats i föregående steg. 

4. Implementera operationerna, det vill säga all funktionalitet, i ASMX‐

filen. 

5. Iterera/upprepa 

2.6 Microsoft BizTalk Server 2006  

BizTalk Server 2006 beskrivs nedan utifrån rapporten Understanding BizTalk  Server 2006. [17] 

2.6.1 Vad är BizTalk? 

BizTalk är en meddelandebaserad applikationskomponent som möjliggör  kommunikationen genom att koppla ihop diverse program och sedan bygga  och modifiera affärsprocesser utifrån detta. I BizTalk kan informationsarbetare  mäta pågående processer, integrera med partners och utföra affärsorienterade  uppgifter. 

 

BizTalks senaste version, BizTalk Server 2006, är byggd på version 2.0 av .NETs  ramverk och utveckling sker i Visual Studio 2005. För lagring använder BizTalk  Server 2006 antigen SQL Server 2005 eller SQL Server 2000. 

2.6.2 Vilka delar består BizTalk av? 

De två viktigaste delarna i BizTalk är messaging‐komponenten och 

orchestrations. Messaging‐komponenten möjliggör kommunikation med en rad  mjukvaror. Genom olika typer av anpassningsbara adaptrar för 

kommunikation kan BizTalk stödja flera varierande protokoll och dataformat,  inklusive Web Services. Orchestrations ger stöd för att bygga och köra grafiskt  definierade affärsprocesser. Implementerade orchestrations kan köra hela eller  delar av affärsprocesserna. 

 

Flera andra delar ingår:  

‐ Business Rules Engine, tillåter evaluering av en komplex mängd av regler. 

‐ Health and Activity Tracking, ett verktyg för hälsokontroll och 

aktivitetsspårning där utvecklare och administratörer kan bevaka och  underhålla huvudkomponenten, BizTalk Engine, och de processer den  kör. 

‐ Enterprise Single Sign‐on, ger möjlighet att matcha autentiserings‐

information mellan Windows‐system och andra system. 

 

Ytterligare delar för affärsorienterade behov: 

‐ Business Acivity Monitoring, tillåter informationsarbetare att mäta en 

pågående affärsprocesser. Information beskrivs i affärstermer och inte i 

(27)

tekniska termer och det som visas kan kontrolleras direkt av dem som  arbetar med affärsverksamhet. 

‐ Busniess Activity Service, tillåter informationsarbetare att konfigurera och  underhålla integrationen med handelspartners. 

2.6.3 Hur används och fungerar BizTalk?  

Största delen av moderna affärsprocesser är åtminstone delvis beroende av  mjukvaror. En del förlitar sig på en applikation, en del förlitar sig många  applikationer utspridda på diverse system. Dessa system har oftast tillverkats  vid olika tidpunkter, på olika plattformar och med olika teknologier. Givet  detta kräver affärsprocesserna att diverse system kan sammankopplas. Att  integrera existerande applikationer, inom ett företag eller över flera 

organisationer till automatiserade affärsprocesser är det fundamentala i  BizTalk. 

 

Receive Adapter

Send Adapter

MessageBox Orchestrations

Inbound Outbound

Send Pipeline

Message Path Business Rules

Engine

Incoming Message

<XML Message>

<XML Message>

<XML Message>

<XML Message>

Outgoing Message Receive

Pipeline

Subscriptions Subscriptions

Fig. 2.2 Ett meddelandes väg i BizTalk Server 2006 

 

 

Ett meddelande tas emot av en Receive Adapter. Olika adaptrar erbjuder olika  kommunikationsmekanismer så meddelandet kan förvärvas genom åtkomst till  en Web Service, en fil eller på annat sätt. Sedan bearbetas meddelandet genom  en Receive Pipeline. Den kan innehålla varierande komponenter som bland annat  kan konvertera ursprungliga meddelandet till ett XML‐format, validera ett  meddelandes digitala signatur. Meddelandet levereras sedan till en MessageBox  som är implementerad på en SQL‐server. 

 

Logiken som styr affärsprocessen är implementerad som en eller flera 

orchesrations som består av exekverbar kod. Orchestrations byggs inte genom 

att skriva kod, istället är det en affärsanalytiker eller utvecklare som använder 

ett lämpligt verktyg för att grafisk organisera en grupp av former som beskriver 

villkor, loopar och andra beteenden. Orchestrations har valet att använda 

(28)

Busniess Rules Engine som är ett enklare och mer lättmodifierat sätt att uttrycka  en mängd komplexa regler i en affärsprocess.  

 

Varje orchestration gör meddelandeprenumerationer, subscriptions, för att  indikera vilken typ av meddelande den vill ta emot. När ett lämpligt  meddelande anländer till en MessageBox, avsänds meddelandet till mål‐

orchestration som sedan utför det som affärsprocessen kräver. Resultatet av  processen är ofta ett annat meddelande, producerat av orchestration, som  sparas i en MessageBox. Meddelandet i sin tur bearbetas av en Send Pipeline,  som konverterar från det interna BizTalk XML‐formatet till formatet som  mottagarsidan kräver. Meddelandet sänds sedan ut via en Send Adapter, som  använder en lämplig mekanism för att kommunicera med applikationen för  meddelandets destination. 

 

Roller för att utveckla affärsprocesser 

Personer inom en affärsverksamhet utnyttjar olika typer av funktionalitet i  BizTalk Server 2006. Affärsanalytiker kan definiera regler och beteenden som  bygger upp affärsprocessen och dess flöde, samt vilken information som sänds  till varje applikation och hur den matchas till en annan struktur. Utvecklaren  implementerar en BizTalk‐applikation, vilket innebär att definiera XML‐

scheman, specificera detaljerna i matchningen till en annan struktur och  konstruera nödvändiga orchestations för att implementera affärsprocessen. 

Administratören konfigurerar kommunikationen mellan parter och placerar ut  och startar BizTalk‐applikationen.  

 

Sammankoppla system 

För att täcka en stor del av de kommunikationsstilar som existerar måste  BizTalk stödja ett mängd varierande protokoll och meddelandeformat. Alla  format som BizTalk hanterar konverteras först till ett XML‐dokument eftersom  BizTalk endast arbetar med detta format internt. 

 

Skicka och ta emot meddelanden, Adaptrar 

För att hantera variationen i mjukvara använder BizTalk olika adaptrar. En  adapter är en implementation av en kommunikationsmekanism, med ett så  kallat protokoll. En utvecklare kan sedan välja vilken typ av adapter som  föredras att använda i en viss situation. Adapter Framework tillhandahåller ett  standardiserat sätt för att använda och bygga egna adaptrar. 

 

Adaptrar som ingår i BizTalk Server 2006: 

‐ Web Service adapter, skickar och tar emot SOAP‐meddelanden över  HTTP. Viktigt för att interagera i en tjänsteorienterad miljö (SOA). 

‐ Filadapter, läser och skriver från Windows filsystem. 

‐ HTTP adapter, skickar och tar emot information över HTTP. 

(29)

‐ MSMQ adapter, skickar och tar emot meddelanden genom att använda  Microsoft Message Queuing. 

‐ MSMQT adapter, skickar och tar emot meddelanden genom BizTalk  Message Queuing. 

‐ WebSphere MQ Adapter, skickar och tar emot meddelanden genom  IBM:s WebSphere MQ. 

‐ SMTP adapter, skickar e‐postmeddelanden via SMTP. 

‐ POP3 Adapter, tar emot e‐postmeddelanden via POP3.  

‐ Windows sharepoint Sevices (WSS) Adapter, åtkomst och publicering av  dokument lagrade i SharePoints dokumentbibliotek. 

‐ SQL adapter, läser och skriver information till en SQL‐server databas. 

 

Andra adaptrar för vanligtvis förekommande affärsmjukvaror finns att tillgå  från Microsoft och deras partners. 

 

Behandla meddelanden, Pipelines 

Eftersom BizTalk arbetar med XML‐dokument internt måste den kunna 

konverterar inkommande och utgående format samt autentisera sändaren av ett  meddelande. Pipelines hanterar detta och är indelade i block som innehåller en  eller flera .NET eller Component Object Model (COM) komponenter.  

 

Decode Disassemble Validate Resolve

Party

MIME/SMIME Decoder

BTF Disassembler

Flat File Disassembler XML Disassembler

XML Validator

Party Resolution

Receive Pipeline

Stages

Components

 

Fig. 2.3 Receive Pipeline, block och standardkomponenter   

Blocken och standardkomponenterna i Recieve Pipeline: 

• Decode, en standardkomponent. MIME/SMIME‐dekoder, hanterar  MIME‐ eller säker MIME (S/MIME) ‐format och konverterar dessa till  XML. Den kan också dekryptera S/MIME‐meddelanden och verifiera  dess digitala signatur. 

• Disassemble, tre standardkomponenter finns tillgängliga: 

o Flat File Disassembler, konverterar en strukturerad textfil till XML‐

dokument. 

(30)

o XML Disassembler, tolkar och läser in inkommande meddelanden  skrivna i XML.  

o BTF Disassembler, accepterar inkommande meddelanden från en  meddelandemekanism fördefinierad i BizTalk Framework (BTF). 

• Validate, validerar ett XML‐dokument skapat av Disassemble mot ett  schema eller en grupp av scheman. 

• Resolve Party, försöker identifiera sändaren av ett meddelande. 

 

Assemble Encode

(Custom components only)

BTF Assembler Flat File Assembler

XML Assembler

MIME/SMIME Encoder

Send Pipeline

Stages

Components Pre-assemble

 

Fig. 2.4 Send Pipeline, block och standardkomponenter   

Blocken och standardkomponenterna i Send Pipeline: 

• Pre‐assemble, ingen standardkomponent finns tillgänglig men egna  ändamålsenliga komponenter kan infogas vid behov. 

• Assemble, tre standardkomponenter finns tillgängliga: 

o Flat File Assembler, konverterar ett XML‐meddelande till en  positionell fil eller genom att använda ett specifikt tecken för att  separera värdena i filen.  

o XML Assembler, gör det möjligt att lägga till ett omslag till XML‐

meddelandet. 

o BTF Assembler, paketerar meddelandet för pålitlig överföring. 

• Encode, en komponent som paketerar utgående meddelanden i MIME‐ 

eller S/MIME‐format. Med S/MIME kan meddelandet dessutom  krypteras och/eller digitalt signeras. 

 

En utvecklare kan också implementera egendefinierade Pipelines genom att  använda Pipeline Designer, ett verktyg som körs i Visual Studio 2005 och  tillhandahåller ett grafiskt gränssnitt för att bygga en pipelinekomponent. 

 

Meddelandeprenumerationer, Subsriptions 

Ett meddelande som färdats genom en adapter och Receive Pipline måste veta 

sin fortsätta väg. Måldestinationen är oftast en orchestration men det är möjligt 

(31)

att ett meddelande går direkt till en Send Pipline, i de fall BizTalk används som  ett rent meddelandesystem. Måldestinationen bestäms via Subscriptions. När  ett meddelande färdas genom en Receive Pipline konstrueras ett meddelande‐

sammanhang med varierande egenskaper. En orchestration eller en Send  Pipline kan prenumerera (eng. subscribe) på ett meddelande, baserat på  meddelandesammanhangets egenskaper. 

 

Definera Affärsprocesser 

För att definiera logiken i en affärsprocess används orchestrations och för att  bygga och utvärdera grupper av affärsregler tillhandhålls Business Rules Engine.  

Logiken för automatiserade affärsprocesser kan implementeras direkt i ett  programmeringsspråk som C# eller Visual Basic. Men istället för att skriva kod  tillhandahåller BizTalk orchetrations, där affärsprocesser skapas grafiskt. Att  arbeta på detta sätt kan medföra att en affärsprocess kan skapas snabbare, bli  enklare att förstå, förklara, ändra och mäta. För att utveckla orchestrations  använder man sig av tre primära verktyg: 

 

• Biztalk Editor låter utvecklare skapa XML‐scheman genom att definiera  elementen i en grafisk hierarki. Existerande scheman kan också 

importeras eller nås via en Web Service.  

• Biztalk Mapper. Vanligtvis tas en typ av strukturerade dokument emot  och en annan typ av struktur på dokumentet ska skickas. För att  definiera dessa transformationer i BizTalk skapas en matchning. Detta  genom att skapa grafiska relationer mellan scheman. Matchningen är  implementerad i XSLT. Mer komplexa transformationer kan skapas  genom användning av functoids. Dessa består av exekverbar kod som  arbetar på ett eller flera element. I BizTalk finns ett antal inbyggda  functoids som bland annat hanterar konverteringar, logik och  beräkningar. 

• Orchestartion Designer används för att skapa en grafisk beskrivning för att  definiera en affärsprocess behov genom att koppla samman en serie av  grafiska former på ett logiskt sätt. Formerna som används är: 

o Receive shape, tar emot ett meddelande. 

o Send shape, skickar ett meddelande. 

o Port shape, definierar hur en meddelande skickas. Varje instans av  en port är kopplad antigen en Send eller Receive Shape. 

o Decide shape, representerar en ”if‐then‐else”‐sats vilket medför att  en orchestration kan utföra olika arbetsuppgifter utifrån boolska  villkor. 

o Loop shape, används för att återupprepa en handling. 

o Construct Message shape, används för att bygga ett meddelande. 

(32)

o Tranformation shape, används för att transformera strukturen av en  dokumenttyp till en annan genom att involvera matchning 

definierad med BizTalk Mapper. 

o Parallel Action shape, används för att specificera att ett flertal  operationer sker parallellt istället för i en sekvens. 

o Scope shape, används för att gruppera operationer till transaktioner  och definiera felhantering. 

o Message Assignment shape, används för att tilldela värden till  variabler i en orchestration. 

 

Web Services och orchestration 

För att få åtkomst till Web Services i en orchestration används Add Web  Reference i Visual Studio 2005 tillsammans med Web Service‐adaptern för att  direkt involvera Web Service‐operationer. Dessutom kan Biztalk Server 2006  publicera en Web Service genom att generera en ASP.NET. På så sätt kan en  Web Service exponera en eller flera orchestration‐operationer som SOAP‐

anropbara Web Services. 

 

Busniess Rules Engine 

Busniess Rules Engine används för att definiera och ändra affärsregler på ett  enklare sätt. En utvecklare börjar oftast med Busniess Rule Composer för att  beskriva affärsregler genom att definiera ett ordförråd för en viss regel. I  Busniess Rules Engine skapas sedan affärspolicyn baserade på definierat  ordförråd. Varje policy innehåller en eller flera affärsregler. En regel använder  ett ord tillsammans med logiska operatorer för att definiera hur en 

affärsprocess arbetar. En affärsregel kan definiera hur värden i ett mottaget  XML‐dokument ska påverka värdena i ett skapat XML‐dokument som ska  skickas eller hur mottagna värden ska påverka värden som skrivs till en  databas eller andra definitioner.  

 

Skötsel och övervakning 

Varje applikation byggd i BizTalk Server 2006 kan behöva övervakning. 

Installation av BizTalk är rättfram och kan installeras på en maskin eller genom  att skapa skalbara installationer. För att sköta applikationer används BizTalk  Administration console där de viktigaste delarna är: 

• Deploy BizTalk applications, förpackar ihop alla delar i en lösning och  sprider det på en eller flera servrar med mera. 

• Configure BizTalk applications, konfigurerar hur BizTalk kommunicerar  med en specifik applikation. 

• Monitor BizTalk applications, övervakar driften av BizTalk‐applikationer. 

 

Health and Activity Tracking 

BizTalk‐applikationer utför en mängd operationer och dessa händelser förs in i 

ett register. När något fel inträffar är det möjligt att felsöka orchestrations och 

References

Related documents

Även om SOA och affärssystem skiljer sig fundamentalt åt, såväl teoretiskt som i den tekniska lösningen, så finns det många intressanta paralleller dem emellan. Den

räntabiliteten kommer från resultaträkningen och den andra kommer från balansräkningen. Balansräkningen visar den ekonomiska ställningen en viss dag och resultaträkningen omfattar..

• Service Consumer: Är en enhet i SOA som använder sig av tjänster för att tillgodose sig själv med information som kan erhållas från en eller flera tjänster.. Service

Staten skulle inte bara beskydda sin medborgare mot tillfälliga svårigheter utan även verka förebyggande och förbättra deras omständigheter på olika sätt, genom

Även om mina informanters uppväxt präglades av olika individuella faktorer och beslutet om vilket språk barnen skulle lära sig, fattades inom familjen, har många andra yttre

Westberg Tjänsteorienterad arkitektur, 2008 version 1.2 38 (45) kan dra från detta projekt är att den tjänsteorienterade arkitekturen kan vara till hjälp men det måste finnas

Studien kommer att gå till så att jag läser upp ett problem för barnen där det inte förekommer några ”rätta” svar och barnen får förklara hur de tänker när de

Åtgärderna räckte dock föga och 1979 lade regeringen fram en proposition för att köpa Kockums, där till exempel Svenska Varv skulle ta över rederidelen, något som också senare