3c8415321ba15994a219001d0bf1da0e.ppt
- Количество слайдов: 62
XML TABANLI B 2 B ÇÖZÜMLERİ Doç. Dr. Selim Akyokuş Bilgisayar Mühendisliği Bölümü Doğuş Üniversitesi XML tabanlı B 2 B Çözümleri, Selim Akyokuş
XML tabanlı B 2 B Çözümleri • • • B 2 B Veri Değişim Standardları B 2 B Frame. Works Yatay Şemalar Dikey Şemalar XML Mesaj Prokolleri Web Servisleri SOAP WSDL UDDI B 2 B Entegrasyon Sunucuları Microsoft Biztalk Server Sonuç XML tabanlı B 2 B Çözümleri, Selim Akyokuş 2
B 2 B Veri Değişim Standartları • • • • B 2 B entegrasyon uygulamalarının başarılı olabilmesi için elektronik ortamda haberleşen ortakların aynı dili konuşması gerekir. XML bir meta dildir. Yani, yeni işaretleme (markup) dillerini tanımlamamızı sağlayan bir dildir. Belirli bir endüstri veya uygulama alanında kullanım amaçıyla bir çok XML işaretleme dilli standardı geliştirilmiş ve geliştirilmektedir. Bu diller XML şema (schema), XML sözlüğü (vocabulary) veya XML uygulaması (application) olarak anılmaktadır. XML Şemaları DTD (Document type definition) veya XSDL (XML schema definition language) ile tanımlanır. Advertising: ad. XML place an ad onto an ad network or to a single vendor Travel: open. Travel information for airlines, hotels, and car rental places News: News. ML creation, transfer and delivery of news Human Resources: XML-HR standardization of HR/electronic recruiting XML definitions Voice: Vox. ML markup language for voice applications Wireless: WAP (Wireless Application Protocol) wireless devices on the World Wide Web Banking: MBA Mortgage Bankers Association of America --> credit report, loan file, underwriting Healthcare: HL 7 DTDs for prescriptions, policies & procedures, clinical trials XML tabanlı B 2 B Çözümleri, Selim Akyokuş 3
Örnek : x. CBL (XML Common Business Library) • • • Şemalar bir alandaki uygulama geliştiren programcı, analist ve alan uzmanlarının ortak bir çalışma gurubu içinde yapılan çalışmaları sonucunda ortaya çıkmaktadır. x. CBL (www. xcbl. org) Commerce One şirketi tarafından B 2 B e-ticaret için gelişirilmiş olan bir XML şema kümesidir. c. XML temel iş sürecleri için bir dizi belge kümesi içerir : Catalog Content • Product. Catalog: Covers the pricing and product descriptions for catalog content, and has a self-describing set of extensions for further characterizing products and services offered. May be used to transfer self-configured product characteristics as well. Order Management: • Order: A Purchase Order document suited for use as a standing order, a standalone order, or most other typical order functions within MRO and direct goods. • Order. Request: A document for requesting an Order from the buying application, typically used by configurators on a supplier's website. • Order. Response: The message used to acknowledge application receipt of an Order, or to indicate changes to the Order received. Also used with Change. Order. • Change. Order: Sent from the buyer to the supplier to indicate changes to an Order. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 4
Örnek : x. CBL (XML Common Business Library) Invoicing and Payment • Invoice: A standard commercial invoice. • Payment. Request: Message for requesting payment - may reference previously sent orders, etc. • Payment. Request. Acknowledgement: Application-level receipt of the Payment. Request. • Remittance. Advice: Message sending information about payments made. • FXRate. Request: Enables payers to retrieve a foreign exchange quote from a financial institution. • FXRate. Response: Enables a financial institution to provide a foreign exchange rate quote in response to a foreign exchange rate request. • Payment. Status. Request: Enables payers to query the status of a previously submitted payment to/from a financial institution. • Payment. Status. Response: Enables the financial institution to send the information on the status of a payment to the payer. Shipping and Planning • Advance. Shipment. Notice: Used to advise buyer of the dispatch of goods from the seller. • Planning. Schedule: Sent from a party who is planning the use or consumption of products (buyer) to a party who has to plan for the supply of the products (seller). . XML tabanlı B 2 B Çözümleri, Selim Akyokuş 5
Örnek : x. CBL (XML Common Business Library) • Order. Request XML Belgesi Örneği <? xml version="1. 0"? > <!--ABC Scenario, Invoice Document --> <!DOCTYPE Invoice SYSTEM 'XCBL 30. dtd'> <Invoice. Header> <Invoice. Number> <Reference> <Ref. Num>INV: 450005693</Ref. Num> </Reference> </Invoice. Number> <Invoice. Issue. Date>20010215 T 09: 00</Invoice. Issue. Date> <Invoice. References> <Purchase. Order. Reference> <Purchase. Order. Number> <Reference> <Ref. Num>4500005693</Ref. Num> <Ref. Date>20010203 T 12: 00</Ref. Date> </Reference> </Purchase. Order. Number> XML tabanlı B 2 B Çözümleri, Selim Akyokuş 6
Order. Request XML Belgesi Örneği </Purchase. Order. Reference> <Account. Number> <Reference> <Ref. Num>ABC-99067 -3000</Ref. Num> </Reference> </Account. Number> </Invoice. References> <Invoice. Purpose. Coded>Original</Invoice. Purpose. Coded> </Invoice. Purpose> <Invoice. Type. Coded>Commercial. Invoice</Invoice. Type. Coded> </Invoice. Type> <Invoice. Language> <Language> <Language. Coded>en</Language. Coded> </Language> </Invoice. Language> XML tabanlı B 2 B Çözümleri, Selim Akyokuş 7
Order. Request XML Belgesi Örneği <Invoice. Detail> <List. Of. Invoice. Item. Detail> <Invoice. Item. Detail> <Invoice. Base. Item. Detail> <Line. Item. Num> <Buyer. Line. Item. Num>0010</Buyer. Line. Item. Num> </Line. Item. Num> <Total. Quantity> < Quantity. Value>111</Quantity. Value> < Unit. Of. Measurement> < UOMCoded>EA</UOMCoded> </ Unit. Of. Measurement> </Quantity> </Total. Quantity> </Invoice. Base. Item. Detail> <Invoice. Pricing. Detail> <List. Of. Price> < Unit. Price> < Unit. Price. Value>10. 00</Unit. Price. Value> </ Unit. Price> </Price> </List. Of. Price> <Invoice. Currency. Total. Value> <Monetary. Value> < Monetary. Amount>1110. 00</Monetary. Amount> </Monetary. Value> </Invoice. Currency. Total. Value> </Invoice. Pricing. Detail> </Invoice. Item. Detail> XML tabanlı B 2 B Çözümleri, Selim Akyokuş 8
XML Registry and Repository (kayıt ve saklama) Servisleri • Çeşitli endüstriler için geliştirilmiş olan şemaların dünya çapında erişilebilip kullanılabilmesi XML kayıt ve saklama (XML registry and repository) servisi veren siteler vardır. – www. xml. org : OASIS (Organization for the Adcancement of Stuctured Information Standards) tarafından işletilen sitesidir. – www. biztalk. org : Microsoft tarafından desteklenmekte ve işletilmektedir. • Genelikle çeşitli yatay ve dikey sektörler için geliştirilmiş olan şemalar bu sitelerde kayıt edilip saklanmakta ve diğer kuruluşların hizmetine sunulmaktadır. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 9
XML Şemaları • Çeşitli uygulamalar ve endüstriler için tanımlanmış şema sayısı her gün artmaktadır. • Değişik endüstriler için geliştirilmiş olan bir çok şemanın olması bu şemaların hangisinin kendi uygulamalarında baz alınması konusunda kullanıcıları tereddüt’e düşürmektedir. • Şu anda bir çok şemanın araştırma ve geliştirme aşamasında olmasından dolayı bu çok doğaldır. • Zamanla bu şemaların bir kısmı birleşerek açık bir standart XML şema kümesi oluşacaktır. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 10
XML Şemaları • Bu aşamada Gartner Group şema kullanıcılarına şunları tavsiye etmektedir: – Kendi endüstriniz için geliştirilmekte olan şemaları takip edin. – Kurumlara özel (properietary) XML şemalarından kaçının. Bunlar ilerde ortak ve ortaklarınızla olan iletişimi engelleyecektir. – 2001 yılı sonunda XML standartlarının oturmaması ile oluşabilecek ve kısa sürecek kullanıcı bir hayal kırıklığına hazır olun. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 11
B 2 B Veri Değişim Standartları • B 2 B uygulamaları için geliştirilmiş standartlar 3 sınıfa ayrılabilir [26, 27]: 1. B 2 B Frameworks : Endüstri içi ve ortaklar arası XML mesaj transferi, iletişim, etkileşim, koordinasyon için geliştirilmiş kapsamlı standard ve şemalar. 2. Yatay (fonksiyonel iş süreci) Şemaları : Endüstriden bağımsız genellikle endüstriler arasındaki iş süreçleri için geliştirilmiş şemalar. 3. Dikey (Vertical) şemalar : Belirli bir uygulama alanı ve endüstri için geliştirilmiş olan şemalar. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 12
B 2 B Frame. Works • B 2 B Frameworks iş ortakları arasındaki mesaj transferi, iletişim, etkileşim ve koordinasyon için geliştirilmiş kapsamlı bir standartlar kümesidir. • B 2 B framework’lerin ilk örneği EDI (Electronic Data Interchange)’dir. • EDI 1970’lerden itibaren şirketler ve tedarikcileri arasındaki belge değişimini VAN (Value Added Networks) ağlarında başarılı bir şekilde sağlamıştır. • EDI Amerika’da ANSI X. 12 ve Avrupa’da EDIFACT mesaj standartlarını kullanmaktadır. • Uzun zamandan beri EDI kurumlar arası işlemlerin gerçekleşmesinde büyük katkısı olan bir teknolojidir. • Bununla beraber EDI’nin yüksek maliyeti ve esnek olmayan yapısı bu teknolojinin yaygın olarak kullanılmasını engellemektedir. Yalnızca büyük çaplı firmalar bu teknolojiyi kullanabilmektedir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 13
B 2 B Frame. Works • EDI teknolojisinin temel sınırlamaları şunlardır: – Firmalar arasında gerçek zamanlı dinamik bilgi alış verişini yoktur. Bilgi bir noktadan noktaya yığın (batch) olarak gönderildiğinden gerçek zamanlı dinamik konuşma imkanı yoktur. – Haberleşme noktadan noktaya gerçekleştiğinden aracı yapıların (intermediary) yönlendirme (routing), süzme (filtering) ve çevirim (translation) gibi işlemler yapmalarını engellemektedir. – Geliştirmesi yavaş ve bakımı zordur. Bu konuda çözüm geliştirmek 9 -12 ay gibi bir süre almakta ve EDI’nin karmaşık yapısının öğrenilmesini gerekmektedir. – EDI pahalı, kurması ve bakımı güç bir teknolojidir. Orta ölçekli firmalar yalnız VAN ağı için $25, 000 -$50, 000 arası yıllık bir bağlantı ücreti ödemektedir. • • • Büyük çaplı firmalarca yerleşmiş ve oturmuş bir teknoloji olarak EDI kullanılmaya devam edecektir. Bununla beraber, Internet’in yaygın olarak kullanılması ile bir çok firma ucuz Internet ortamını B 2 B işlemleri gerçekleştirmek için kullanmak istemektedir. Bu amaçla firmalar Internet ortamında kolayca kurulacak, esnek, ucuz ve bakımı kolay çözümler istemektedir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 14
XML tabanlı B 2 B Frame. Works • EDI’de olan sınırlamalar XML tabanlı B 2 B Framework’ların gelişmesine yol açmıştır. • XML tabanlı B 2 B Frameworks: – – – – – Biz. Talk Framework Commerce XML Distributed Management Task Force e. Co Framework Electronic Business XML (eb. XML) Initiative European XML/EDI Pilot Project An Open Standard for Small to Medium sized Businesses Open Applications Group Rosetta. Net XML/EDI Guidelines XML tabanlı B 2 B Çözümleri, Selim Akyokuş 15
eb. XML • • • Bu alanda son zamanlarda en çok ilgi çeken Framework bir Birleşmiş Milletler organizasyonu olan UN/CEFACT (The United Nations Centre for Trade Facilitation and Electronic Business)’in geliştirdiği eb. XML’dir. 11 Mayıs 2001 tarihinde , 18 aylık bir çalışmanın sonuda eb. XML proje ekibi eb. XML B 2 B Framework standardlarını yayınlamıştır. Bu standardları temel alan bir çok firma bu standardları kullanarak B 2 B yazılımı geliştirmektedir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 16
eb. XML Standartları (www. ebxml. org) Specification Project Team Normative Document Non-Normative Print Version Business Process Specification Schema v 1. 01 (XML schema and DTD examples available separately) Business Process eb. BPSS. pdf eb. BPSS. doc eb. BPSS. dtd eb. BPSS. xml eb. BPSS. xsd eb. BPSS_print. pdf eb. BPSS_print. doc Registry Information Model v 1. 0 Registry/Repository eb. RIM. pdf eb. RIM. doc eb. RIM_print. pdf eb. RIM_print. doc Registry Services Specification v 1. 0 Registry/Repository eb. RS. pdf eb. RS. doc eb. RS_print. pdf eb. RS_print. doc Eb. XML Requirements Specification v 1. 06 Requirements eb. REQ. pdf eb. REQ. doc eb. REQ_print. pdf eb. REQ_print. doc Collaboration-Protocol Profile and Agreement Specification v 1. 0 Trading Partner eb. CPP. pdf eb. CPP. doc cpa-example. dtd. xml cpa-example. xml cpp-cpa-v 1_0. dtd cpp-cpa-v 1_0. xsd cpp-example. xml eb. CPP_print. pdf eb. CPP_print. doc Message Service Specification v 1. 0 Transport, Routing, and Protocol eb. MS. pdf eb. MS. doc eb. MS_print. pdf eb. MS_print. doc XML tabanlı B 2 B Çözümleri, Selim Akyokuş 17
Yatay (fonksiyonel - iş süreci) Şemalar • Endüstriden bağımsız genellikle endüstriler arasındaki iş süreçleri için geliştirilmiş genel amaçlı şemalardır. • Bu şemaların büyük bir kısmı iş süreci için geliştirilmiş mesaj formatlarını içerir. • Bunlar satış siparişi, satın alma siparişi, fatura, katalog veya çeşitli raporlamalarda kullanılacak mesaj formatlarını belirler. Account. Information. Import Aggregation and Logging of User Requests for assistance Business Rules Markup Language Common Business Library CONproduct_load_v 1 Corporate. Events Credit. Note. . (Kaynak : http: //www. xml. com/pub/a/2000/08/02/ebiz/extensible. html ) XML tabanlı B 2 B Çözümleri, Selim Akyokuş 18
Dikey (Vertical) şemalar • Dikey şemalar belirli bir uygulama ve endüstri için geliştirilmiş şemalardır. • Bu şemalar finans, bankacılık, turizm, tıb, gayri menkul, insan kaynakları, otomotiv, sigorta, elektronik gibi dikey iş uygulamalarında kullanım amacıyla geliştirilmiştir. Building-Construction e. Xtensible Mark-up Language Call Processing Language Electronic Component Information Exchange (ECIX) and Pinnacles Component Information Standard (PCIS) e. Xtensible Real Estate Data Standards HR-XML Human Resources News. ML Real Estate Transaction Markup Language XML for the Automotive Industry XML for the Insurance Industry XML for Publishers and Printers XML Schemas for Insurance (Kaynak : http: //www. xml. com/pub/a/2000/08/02/ebiz/extensible. html ) XML tabanlı B 2 B Çözümleri, Selim Akyokuş 19
XML Mesaj Protokolleri • XML’in üç yıl önce ortaya çıkışından itibaren XML konusundaki çalışmaların büyük bir kısmı değişik sektörler için yatay ve dikey XML şemaları oluşturarak evrensel bir veri formatı oluşturmak konusunda yoğunlaşmıştır. • Son zamanlarda uygulamalar arası haberleşmeyi sağlayan XML mesaj protokolleri çok ilgi çeken bir konudur. • Bu konuda en çok gündemde olan protokoller W 3 C XML protokolü, eb. XML mesaj protokollü, SOAP, protokolüdür. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 20
XML Mesaj Protokolleri PROTOKOL DESTEKLEYEN KURUMLAR XML-RPC Userland SOAP Ariba, Inc. Commerce One, Inc. Compaq Computer Corporation Develop. Mentor, Inc. Hewlett Packard Company International Business Machines Corporation IONA Technologies Lotus Development Corporation Microsoft Corporation SAP AG User. Land Software Inc. WDDX Allaire Jabber. org Open Source Project eb. XML Messaging UN/CEFACT oasis Biz. Talk Microsoft W 3 C XML Protocol (XMLP) World Wide Web Consortium- XML Protocol Working Group XML tabanlı B 2 B Çözümleri, Selim Akyokuş 21
SOAP (Simple Object Access Protocol) • SOAP XML tabanlı yaygın olarak kullanılan RPC (Remote Procedure Call) protokolüdür [34, 35]. Use. Land Firmasından Dave Winer’in 1998’de geliştirdiği XML-RPC (www. xmlrpc. com) protokol’üne dayanmaktadır. • İlk versiyon SOAP 0. 9, Microsoft, Developmentor ve Useland tarafından 1999 yılı sonlarında yayınlandı. Başlangıçta basit bir araç olarak algılandı. Daha sonra SOAP 1. 0 yayınlandı ve Microsoft tarafından desteklendi. • Mayıs 2000’de IBM ve daha bir çok firma SOAP geliştirme çalışmalarına katılarak SOAP 1. 1’i yayınladı. Bu noktadan sonra IBM ve Microsoft SOAP tabanlı geliştirme araçlarının geliştirilmesine önderlik ettiler. IBM ve Microsoft desteği ile birlikte bir çok firmada SOAP’ı ciddi olarak algıladı ve yeni geliıtirme araçları üretmeye başladılar. Aynı zamanda web standartları geliştirme konsorsiyumu W 3 C (www. w 3 c. org) ‘ye bir standard’ın ilk aşamasını oluşturan “Note” olarak SOAP 1. 1 teslim edildi. • En son olarak W 3 C konsorsiyumu Protokol çalışma gurubu 9 Temmuz 2001 tarihinde SOAP 1. 2 verisyonu çalışma taslağı (Working Draft) spesifikasyonunu yayınladı. • Arkasında giderek büyüyen endüstri desteği ile birlikte, SOAP ve bu protokolün B 2 B uygulamalarındaki açıklarını tamamlayan WSDL ve UDDI gibi yapılarla son zamanlarda “Web Servisleri” olarak tanımlanan yeni bir mimari gelişti. Bu mimarinin Web ortamında yeni bir devrimi tetikleyeceği beklenmektedir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 22
eb. XML Mesaj Protokolü • • • Eb. XML mesaj protokolü eb. XML standartları kümesi içinde mesaj transferi için geliştirilmiş standarttır. 11 Mayıs 2001 tarihinde yayınlanan en son eb. XML standardlarında, eb. XML mesaj protokolü ekibi SOAP 1. 1 ve SOAP Messages with Attachments mesaj yapı ve standartlarının eb. XML mesaj protokolünde kullanacağını açıkladı. eb. XML mesaj protokolü SOAP yapısını baz alarak güvenlik, esneklik, sağlamlılık gibi konularda bir takım ekler içermektedir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 23
XMLP – W 3 C XML Protokolü • Web konusundaki standartlaşma çalışmalarını yürüten W 3 C (World Wide Web Consortium) dağıtık sistemlerde iletişim için XML kullanılması ile ilgili artan ilgi nedeniyle Eylül 2000’de bir XML protokolü çalışma gurubu oluşturdu. • Bu gurubun amacı mevcut protokolleri inceleyerek B 2 B entegrasyon uygulamalarında kullanılacak ve genel bir standart olarak kabul edilecek SOAP benzeri basit bir protokol oluşturmaktır. • Bu grup yaklaşık 18 ay sürecek bir çalışmanın sonunda Eylül 2002’de yeni bir XML protokollü standardı sunmayı planlamaktadır. • En son 9 Temmuz 2001 tarihinde oluşacak olan protokolün soyut bir modelini sunulmuştur. (XML Protocol Abstract Model – http: //www. w 3. org/TR/2001/WD-xmlp-am-20010709/) XML tabanlı B 2 B Çözümleri, Selim Akyokuş 24
WEB SERVİSLERİ • • Geçen altı yıldaki gelişmelerden sonra bugünkü web ortamı olmadan ağ tabanlı bilgi sistemlerinin düşünülmesi çok zordur. Web’in bu kadar başarılı olmasının nedeni basitlik ve yaygınlığıdır (ubiquity). Web ortamındaki gelişmeleri üç safhada inceleyebiliriz: 1. Belge Web’i (Document Web) : Belge web’i ile web’in ilk aşamadaki kullanımı, yani HTTP protokolü ile HTML dilinde biçimlendirilmiş statik belgelerin kullanıcılara sunumunu ifade ediyor. 2. Uygulama Web’i (Application Web) : Bu yapı işletmelerin müşterilerine web üzerinden bazı iş süreçlerini yaptırma gereksinimi sonucunda ortaya çıktı. Bu yapıda sunucu tarafında çalışan programlar (server-side programs) vasıtasıyla hazırlanan dinamik HTML belgeleri ile kullanıcı ve iş uygulaması arasında etkileşim sağlandı. 3. Servis Web’i (Services Web) : İşletmelerin diğer işletmelerle olan iş süreçlerini bütünleştirme gereksinimi sonucunda ortaya çıkan ve gelişmekte olan yeni yapıdır. Bu yapının temel taşı web servisleridir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 25
WEB SERVİSLERİ NEDİR? • Web servislerindeki temel amaç işletme bilgi sistemlerindeki program modüllerinin etkileşimini sağlamaktır. • Web servisleri web ortamında yayınlanabilen, aranıp bulunabilen ve çağrılarak erişilebilen modüler uygulama fonksiyonlarıdır. • Web servisleri Haziran 2000’de ortaya çıkan bir çok yazılım firması tarafından yoğun bir destek bulan modeldir. • Web Servives = SOAP + WSDL + UDDI • Web servisi kavramı destekcilerinden Frank Boss’a göre “İleride internet’te web sayfasından daha çok web servisi bulunacaktır. ” • Web servisleri modelinin yayınlaşaması için yayınlanan web servislerini indeksleyip sunan özel web servisi kayıt siteleri – www. xmethods. com – www. salcentral. com XML tabanlı B 2 B Çözümleri, Selim Akyokuş 26
XML tabanlı B 2 B Çözümleri, Selim Akyokuş 27
XML tabanlı B 2 B Çözümleri, Selim Akyokuş 28
XML tabanlı B 2 B Çözümleri, Selim Akyokuş 29
XML tabanlı B 2 B Çözümleri, Selim Akyokuş 30
Örnek : İş gezisi rezervasyonları • İş gezisi organizasyonu için geliştirilen uygulama havayolu, otel, araç kiralama ve e-marketplace firmalarının sağladığı web servislerini çağırarak gerekli işlemleri gerçekleştirecektir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 31
Türkiye de bir Web Servisi Uygulaması Ödeme Planı bilgileri Denizbank Yapılan Ödemeler Acer Vestel XML tabanlı B 2 B Çözümleri, Selim Akyokuş . . 32
Web Servisleri • Web servisleri yazılım endüstrisinin “El Dorado” su olarak nitelendirilmektedir[38]. “El Dorado” bir zamanlar Amerikada altın madeni bulunduğu var sayılan herkesin aradığı hayali bir şehirdir. • Internet üzerinde uygulama bütünleştirmesi için yöntem arayan bir çok yazılım geliştirici firma ve kurum web servisleri modeli konusuna yönelmişlerdir. • Bu modeli destekleyen Microsoft, IBM, Sun, HP, Oracle ve daha bir çok firma bu konuda yoğun bir şekilde çalışmakta ve web servisleri yazılım ve uygulama geliştirme araçları sunmaktadır. • Bu konudaki firmaların yoğun desteğinden dolayı uygulama bütünleştirmesi konusunda ortaya çıkacak hakim ortamın web servisleri modeline dayanacağı yönündedir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 33
Web Servisleri Modeli • Web servisleri modeli üç ana birimin etkileşimine dayanır. – – – Servis Sağlayıcı (Servis Provider): Servis sağlayıcı istemcilerin sağlayıcıda bulunan servislere erişimini sağlar. Servis sağlayıcı kendi sitesinde bulunan web servisleri tanımını servis kayıt birimine (service registry) kaydederek bu servisinin nasıl çağrılacağı belirtir. Servis İstemcisi (Service Requester) : Servis sağlayıcısında bulunan web servislerini çağırarak kullanan istemci uygulamalardır. Web servisinin nasıl çağrılacağı ve ilgili parametreleri servis kayıt biriminden arayarak bulur ve çağırır. Servis Kayıt Birimi (Service Registry) : Servis sağlayıcılarının yayınladıkları web servisi tanımlarını saklar ve aranıp bulunmasını sağlar. Servis sağlayıcıları servis kayıt birimini tarayarak istediği servislere hakkında bilgi alabilir. Servis kayıt birimi her servisin nasıl çağırılacağı konusunda tanım bilgileri içerir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 34
Web Servisleri • Bir web servisi istemcisinin bir servis sağlayıcıdan bir servisi çağırma aşamasındaki temel adımlar: – – – 1. Web servisi istemcisi (SOAP Client) servis kayıt biriminden (UDDI) web servisini bulur. 2. İstemci bir SOAP mesajı hazırlar. SOAP mesajı bir XML belgesidir. 3. İstemci SOAP mesajını web server veya uygulama sunucusunda çalışan SOAP istek dinleyicisine gönderir. İstek dinleyici gelen isteklere cevap veren sunucu programlardır. Bu programlar bir JSP, ASP, CGI veya ISAPI programıdır. 4. SOAP sunucu gelen SOAP mesajını parse eder ve gerekli parametreleri göndererek istenen nesnenin istenen yöntemini çağırır. 5. Çağırılan nesnedeki yöntem çalışır ve sonuçları SOAP sunucuna’a gönderir. SOAP sunucusu gelen sonucu SOAP mesajı formatında biçimlendirerek istemciye gönderir. 6. İstemci gelen SOAP mesajının içindeki bilgileri alarak istekde bulunan programa gönderir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 35
Web Servisleri Standartları • Web servisleri açık internet standartlarına dayanır. Aşağıdaki web servisi yığıtı katmanlarında belirtilen güvenlik, iş akışı, servis kalitesi ve yönetim gibi konulardaki web servisi standartları henüz araştırma aşamasındadır. Bunların yanında bir takım temel çekirdek standartlar oluşmaya başlamıştır: 1. 2. 3. SOAP (Simple Object Access Protocol) : Intenet üzerinde web servislerini çalıştırmak için kullanılan protokol WSDL (Web Services Description Language) : Web servislerini tanımlama dili UDDI (Universal Description, Discovery and Integration) : Web servislerinin indekslenip bulunduğu kayıt servisi XML tabanlı B 2 B Çözümleri, Selim Akyokuş 36
SOAP (Simple Object Acess Protocol) • SOAP uygulama bütünleştirmesi için geliştirilmiş XML ile formatlanmış bilgilerin iletişimini sağlayan bir protokoldür. • Uygulama bütünleştirme için middleware olarak adlandırılan daha önce bir çok çözümler sunmuştur. RPC (Remote Procedure Call, DCOM, IIOP (Internet Inter-ORB Protocol) ve Java RMI bu çözümlerden bazılarıdır. Bu middleware çözümleri internet ortamında iletişim sağlama konusunda yetersiz kalmaktadır. • Bu nedenle XML tabanlı bir protokol olan SOAP giderek yaygınlaşmaktadır. • SOAP istemcilerin sunucularda olan nesne yöntemlerini çağırmasını ve sonuçların alınmasını sağlayan basit istek/yanıt (resquest/response) protokolüdür. • SOAP mevcut internet altyapısında olan router, firewall ve proxy sunucularda herhangi bir değişiklik yapmadan kolayca çalışmaktadır. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 37
SOAP İstemci ve Sunucu • • • Bir SOAP uygulaması geliştirmek için istemci ve sunucuya SOAP geliştirme araçları ile birlikte gelen kütüpanelerin yüklenmesi gerekir. Bu kütüpaneler bir XML parser ve SOAP işlemicisi içerir. İstemci SOAP uygulaması bir SOAP istek mesajı oluşturarak bu isteği SOAP sunucusunda tanımlanmış servis uç noktalarından (end point) birisi tarafından çalıştırılması için gönderir. SOAP sunucu ilgili servisi çalıştırdıktan sonra SOAP yanıt mesajı hazırlar. Hazırlanan SOAP yanıt mesajı istemciye iletilir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 38
SOAP Mesajı • • • Aşağıdaki şekil HTTP protokolü ile gönderilen bir SOAP mesajını göstermektedir. SOAP mesajı HTTP POST metodu veri paketinin içinde gönderilir. Bir SOAP mesajı bir SOAP zarfından (SOAP envelope) oluşur. SOAP zarfı opsiyonel bir SOAP başlığı (SOAP header) ve SOAP gövdesinden (SOAP body) oluşur. SOAP gövdesi çağrılacak metod, metodun içerdiği parametreleri ve verileri içerir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 39
SOAP İstek (Request) Mesajı POST /Stock. Quote HTTP/1. 1 Host: www. stockquoteserver. com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "http: //example. com/stockquote. xsd" <SOAP-ENV: Envelope xmlns: SOAP-ENV="http: //schemas. xmlsoap. org/soap/envelope/" SOAP-ENV: encoding. Style="http: //schemas. xmlsoap. org/soap/encoding/"> <SOAP-ENV: Body> <m: Get. Last. Trade. Price xmlns: m="http: //example. com/stockquote. xsd"> <symbol>DIS</symbol> </m: Get. Last. Trade. Price> </SOAP-ENV: Body> </SOAP-ENV: Envelope> XML tabanlı B 2 B Çözümleri, Selim Akyokuş 40
SOAP yanıt (Response) Mesajı HTTP/1. 1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV: Envelope xmlns: SOAP-ENV="http: //schemas. xmlsoap. org/soap/envelope/" SOAP-ENV: encoding. Style="http: //schemas. xmlsoap. org/soap/encoding/"/> <SOAP-ENV: Body> <m: Get. Last. Trade. Price. Response xmlns: m="http: //example. com/stockquote. xsd"> <Price>34. 5</Price> </m: Get. Last. Trade. Price. Response> </SOAP-ENV: Body> </SOAP-ENV: Envelope> XML tabanlı B 2 B Çözümleri, Selim Akyokuş 41
Bir Web Servisi (SOAP) Uygulaması • • Bu web servisi uygulaması örneği Microsoft SOAP toolkit ile gelmektedir. Microsoft SOAP toolkit : http: //msdn. microsoft. com/code/default. asp? url=/code/sample. asp? url=/ms dn-files/027/001/580/msdncompositedoc. xml Bu örnekteki web servisi aşağıdaki işlemleri gerçekleştirmektedir. – Echo. String, – Add. Numbers, – Subtract. Numbers • • Bu işlemler ile ilgili kod Visual Basic’te bir Active. X dll project açılırarak bir COM nesnesi olarak derlenir ve Docsample 1. dll kod dosyası oluşturulur. WSDL generator bu dosyayı kullanarak web servisi tanım dosyası (Docsample 1. wsdl) ve web servis meta language (Docsample 1. wsml) dosyası oluşturur. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 42
SOAP Sunucu Public Function Echo. String(By. Val test. String As String) _ As String Echo. String = test. String End Function Public Function Add. Numbers(By. Val Number. One As Double, _ By. Val Number. Two As Double) _ As Double Add. Numbers = Number. One + Number. Two End Function Public Function Subtract. Numbers(By. Val Number. One As Double, _ By. Val Number. Two As Double) _ As Double Subtract. Numbers = Number. One – Number. Two End Function XML tabanlı B 2 B Çözümleri, Selim Akyokuş 43
SOAP İstemci 1. Option Explicit 2. 3. Dim soap. Client 4. set soapclient = Create. Object("MSSOAP. Soap. Client") 5. On Error Resume Next 6. Call soapclient. mssoapinit("http: //localhost/Doc. Sample 1. wsdl", "Doc. Sample 1", "Sample 1 Soap. Port") 7. if err <> 0 then 8. wscript. echo "initialization failed " + err. description 9. end if 10. 11. wscript. echo soapclient. Echo. String("Bob") 12. if err <> 0 then 13. wscript. echo err. description 14. wscript. echo "faultcode=" + soapclient. faultcode 15. wscript. echo "faultstring=" + soapclient. faultstring 16. wscript. echo "faultactor=" + soapclient. faultactor 17. wscript. echo "detail=" + soapclient. detail 18. end if 19. 20. wscript. echo soapclient. Add. Numbers(2, 3) 21. if err <> 0 then 22. wscript. echo err. description 23. wscript. echo "faultcode=" + soapclient. faultcode 24. wscript. echo "faultstring=" + soapclient. faultstring 25. wscript. echo "faultactor=" + soapclient. faultactor 26. wscript. echo "detail=" + soapclient. detail 27. end if XML tabanlı B 2 B Çözümleri, Selim Akyokuş 44
WSDL (Web Services Description Language) • Bir uygulamanın bir web servisini kullanması için web servisinin nasıl çağırılacağının, arayüzünün, hangi protokollerin ve kodlama standartlarının belirtilmesi gerekir. • WSDL web servisini tanımlayan bir XML belgesidir. • Bir anlamda dağıtık programlamada kullanılan IDL’e (Interface Definition Language – Arayüz Tanımlama Dili) benzer. • Web servisi tanımı işlemler, giren ve çıkan mesaj formatları, ağ ve port adresleri gibi bilgileri içerir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 45
WSDL (Web Services Description Language) • Bir web servisi tanım belgesi aşağıdaki temel elemanları içerir: – Types: mesajlarda kullanılacak veri tiplerini belirtir. – Message: İletişimde kullanılacak mesajları tanımlar. – Port. Type : Web servisinin içerdiği işlemleri (methods) ve ilgili mesajları tanımlar. – Binding : İşlem ve mesajlarda kullanılacak veri formatlarını tanımlar. – Port: Binding ve web adresinden oluşan servis noktasını tanımlar. Web adresi servisin çalıştırılacağı URL’dir. – Service: Kullanılan port’lar kümesidir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 46
WSDL (Web Services Description Language) – Types: mesajlarda kullanılacak veri tiplerini belirtir. <definitions name ='Doc. Sample 1' target. Namespace = 'http: //tempuri. org/wsdl/' xmlns: wsdlns='http: //tempuri. org/wsdl/' xmlns: typens='http: //tempuri. org/type' xmlns: soap='http: //schemas. xmlsoap. org/wsdl/soap/' xmlns: xsd='http: //www. w 3. org/2001/XMLSchema' xmlns: stk='http: //schemas. microsoft. com/soap-toolkit/wsdl-extension' xmlns='http: //schemas. xmlsoap. org/wsdl/'> <types> <schema target. Namespace='http: //tempuri. org/type' xmlns='http: //www. w 3. org/2001/XMLSchema' xmlns: SOAP-ENC='http: //schemas. xmlsoap. org/soap/encoding/' xmlns: wsdl='http: //schemas. xmlsoap. org/wsdl/'> </schema> </types> XML tabanlı B 2 B Çözümleri, Selim Akyokuş 47
WSDL (Web Services Description Language) – Message: İletişimde kullanılacak mesajları tanımlar. <message name='Sample 1. Echo. String'> <part name='test. String' type='xsd: string'/> </message> <message name='Sample 1. Echo. String. Response'> <part name='Result' type='xsd: string'/> </message> <message name='Sample 1. Add. Numbers'> <part name='Number. One' type='xsd: double'/> <part name='Number. Two' type='xsd: double'/> </message> <message name='Sample 1. Add. Numbers. Response'> <part name='Result' type='xsd: double'/> </message> <message name='Sample 1. Subtract. Numbers'> <part name='Number. One' type='xsd: double'/> <part name='Number. Two' type='xsd: double'/> </message> <message name='Sample 1. Subtract. Numbers. Response'> <part name='Result' type='xsd: double'/> </message> XML tabanlı B 2 B Çözümleri, Selim Akyokuş 48
WSDL (Web Services Description Language) • Port. Type : Web servisinin içerdiği işlemleri (methods) ve ilgili mesajları tanımlar. <port. Type name='Sample 1 Soap. Port'> <operation name='Echo. String' parameter. Order='test. String'> <input message='wsdlns: Sample 1. Echo. String' /> <output message='wsdlns: Sample 1. Echo. String. Response' /> </operation> <operation name='Add. Numbers' parameter. Order='Number. One Number. Two'> <input message='wsdlns: Sample 1. Add. Numbers' /> <output message='wsdlns: Sample 1. Add. Numbers. Response' /> </operation> <operation name='Subtract. Numbers' parameter. Order='Number. One Number. Two'> <input message='wsdlns: Sample 1. Subtract. Numbers' /> <output message='wsdlns: Sample 1. Subtract. Numbers. Response' /> </operation> </port. Type> XML tabanlı B 2 B Çözümleri, Selim Akyokuş 49
WSDL (Web Services Description Language) • Binding : İşlem ve mesajlarda kullanılacak veri formatlarını tanımlar. <binding name='Sample 1 Soap. Binding' type='wsdlns: Sample 1 Soap. Port' > <stk: binding preferred. Encoding='UTF-8'/> <soap: binding style='rpc' transport='http: //schemas. xmlsoap. org/soap/http' /> <operation name='Echo. String' > <soap: operation soap. Action='http: //tempuri. org/action/Sample 1. Echo. String' /> <input> <soap: body use='encoded' namespace='http: //tempuri. org/message/' encoding. Style='http: //schemas. xmlsoap. org/soap/encoding/' /> </input> <output> <soap: body use='encoded' namespace='http: //tempuri. org/message/' encoding. Style='http: //schemas. xmlsoap. org/soap/encoding/' /> </output> </operation> <operation name='Add. Numbers' > <soap: operation soap. Action='http: //tempuri. org/action/Sample 1. Add. Numbers' /> <input> <soap: body use='encoded' namespace='http: //tempuri. org/message/' encoding. Style='http: //schemas. xmlsoap. org/soap/encoding/' /> </input> <output> <soap: body use='encoded' namespace='http: //tempuri. org/message/' encoding. Style='http: //schemas. xmlsoap. org/soap/encoding/' /> </output> </operation> <operation name='Subtract. Numbers' > <soap: operation soap. Action='http: //tempuri. org/action/Sample 1. Subtract. Numbers' /> <input> <soap: body use='encoded' namespace='http: //tempuri. org/message/' encoding. Style='http: //schemas. xmlsoap. org/soap/encoding/' /> </input> <output> <soap: body use='encoded' namespace='http: //tempuri. org/message/' encoding. Style='http: //schemas. xmlsoap. org/soap/encoding/' /> </output> </operation> </binding> XML tabanlı B 2 B Çözümleri, Selim Akyokuş 50
WSDL (Web Services Description Language) – Port: Binding ve web adresinden oluşan servis noktasını tanımlar. Web adresi servisin çalıştırılacağı URL’dir. – Service: Kullanılan port’lar kümesidir. <service name='Doc. Sample 1' > <port name='Sample 1 Soap. Port' binding='wsdlns: Sample 1 Soap. Binding' > <soap: address location='http: //localhost/Doc. Sample 1. wsdl' /> </port> </service> </definitions> XML tabanlı B 2 B Çözümleri, Selim Akyokuş 51
UDDI (Universal Description Discovery and Integration) • Bir web servisini kullanmak için kullanıcının web servisi sağlayan kurumları ve bu kurumların verdikleri web servislerinin neler olduğunu bilmesi gerekir. • UDDI kısaltmasında geçen Evrensel, Tanım, Buluş ve Bütünleştirme kelimelerinin ifade ettiği gibi • UDDI kurumların kendilerini ve sağladıkları servisleri yayınlayarak tanıtamalarını, ve bu bilgilerin daha sonra diğer kurumlarca taranıp bulunmasını sağlayan bir standarttır. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 52
UDDI (Universal Description Discovery and Integration) • • • UDDI Kurum Kayıt Servisleri (UDDI Business Registry) kurum ve web servisleri bilgilerini saklayan ve yayınlayan sunuculardır. Bu sunucular servis sağlayıcılarından gelen bilgilerini kendi veritabanlarına kayıt ederek diğer kurumların erişimine açar. Şu anda aktif olarak çalışan kurum kayıt sunucuları uddi. microsoft. com ve uddi. ibm. com ‘dur. Sunucular kendilerine kayıt edilen bilgileri diğer sunucularada kopyalayarak kolayca hızlı bir şekilde erişilmesini sağlarlar. UDDI sunucuları kurum ve servis kayıt, güncelleme ve tarama işlemlerini web servisleri (SOAP mesajları) ile gerçekleştirir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 53
XML tabanlı B 2 B Çözümleri, Selim Akyokuş 54
Web Servisi ve SOAP Uygulama Geliştirme Araçları (www. soapware. org) Apache SOAP (Apache project) [Full, Java] 2. 2, 2001/05/30 Web Services Toolkit (IBM, alpha. Works) [Full, Java] 2. 3, 2001/05/14 GLUE [registration required] (Graham Glass) [Full, Java] 3. 1, 2001/07/14 Develop. Mentor SOAP (Develop. Mentor) [Full, Java] 0. 3, 2000/01/24 HP Web Services Platform [registration required] (HP) [Full, Java] ? , 2001/08/15 Soap Toolkit for JBuilder [login required] (Stephen Schaub) [Client, Java | JBuilder 4 | Win] ? , 2001/03/02 SOAP for BEA Web. Logic [no official support] (BEA Systems) [Server? , Java? | BEA Web. Logic Server] ? , ? XMLBus [registration required] (IONA Technologies) [Full, Java | i. Portal App. Server, BEA Web. Logic] 1. 2. 2, 2001/08/22 Microsoft SOAP toolkit (Microsoft) [Full, VB/C# | Win. NT/2 K] 2. 0, 2001/04/25 Microsoft SOAP toolkit (aka ROPE) [no support] (Microsoft) [Full, VB/C# | Win. NT/2 K] 1. 0, 2000/12 Visual Studio. NET (Microsoft) [Full, . NET | Win. NT/2 K/98/Me] B 2, 2001/06/18. NET Framework SDK (Microsoft) [Full, . NET | Win. NT/XP/2 K/98/Me] B 2, 2001/06/07 SOAP: : Lite (Paul Kulchenko) [Full, Perl] 0. 51, 2001/07/18 Develop. Mentor SOAP (Develop. Mentor) [Full, Perl] 0. 28, 2000/09/05 SQLData SOAP Server (SQLData) [Server, C++ | Win. NT/2 K] 3. 01, 2001/01/25 SOAP toolkit LITE (Lucin) [Full, ? ] 2. 3. 0, 2000/09/18 Delphi 6 (Borland) [Full, Delphi] ? , ? XML tabanlı B 2 B Çözümleri, Selim Akyokuş 55
XML tabanlı B 2 B Çözümleri, Selim Akyokuş 56
B 2 B ENTEGRASYON SUNUCULARI • • B 2 B entegrasyon sunucuları kurumlar arası veri değişimi için karmaşık iş süreçleri otomasyonu ve yönetimi, kullanılan farklı sistemlerin, standartların ve protokollerin uyumunu sağlayan yazılımlardır. Bu sunuculardan beklenen bazı özellikleri şunlardır: – – – – – • Multiple Protocol Support (Çoklu protokol desteği)(HTTP, HTTPS, FTP, SMTP, JMS, . . ) Security (Güvenlik) Message Routing and Filtering (Mesaj Yönelendirme ve Filitreleme) Data Mapping and Translation (Veri biçimi dönüştürme) Support for hundreds of EDI and XML formats (Yüzlerce EDI ve XML biçimi desteği) Process automation and Management (Süreç otomasyonu ve yönetimi) Workflow automation and Management (İş akışı otomasyonu ve yönetimi) Transaction Management (İşlem yönetimi) Configuration, management and control tools (Konfigurasyon, yönetim ve kontrol araçları Visual development environment tools (Görsel geliştirme araçları) Bir çok firma B 2 B entegrasyon sunucuları geliştirmiştir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 57
B 2 B Entegrasyon Sunucuları Firma Ürün Attunity B 2 B BEA Systems BEA Web. Logic Integration e. Xcelon B 2 B Integration Server Extricity B 2 B GE Global e. Xchange Services GE Inter. Linx Hewlett-Packard HP Bluestone Total-e-Business IBM Web. Sphere Business Integrator IONA Technologies IONA B 2 B Integrator, Netfish XDI System Mercator Software Mercator Integration Broker suite Microsoft Biz. Talk Server 2000 NEON Systems i. Wave e. Business Server Oracle E-Business Suite Sybase e-biz Integrator, e-biz 2000 TIBCO Software TIBCO Active. Exchange Vignette e. Biz. Xchange Vitria Technology Vitria Business. Ware, XMLSolutions Business Integration Platform web. Methods B 2 B XML tabanlı B 2 B Çözümleri, Selim Akyokuş 58
Web. Methods B 2 B Server XML tabanlı B 2 B Çözümleri, Selim Akyokuş 59
Microsoft Biztalk 2000 Server • Biztalk : 4 farklı anlam – Biztalk Framework • B 2 B için geliştirilmiş mesaj yapısı • B 2 B iş süreçleri iletişimi ve yönetimi geliştirilmiş stardartlar kümesi – Biztalk. org • XML şemaları kayıt ve saklama (registry and repository) servisi • XML, Biztalk Framework ve Server için Kaynaklar – Biztalk Server • Biztalk mesajlarını işleyebilen uygulama sunucusu • Her hangi bir platfrom ve dilde geliştirilebilir – Biztalk Server 2000 • Microsoft. NET sunucu ailesinin B 2 B entegrasyon sunucusu XML tabanlı B 2 B Çözümleri, Selim Akyokuş 60
SONUÇ • XML 21. yüzyıl B 2 B ve bir çok bilgi teknolojileri uygulamaları alanı oluşumundaki anahtar teknolojidir. • Geçen altı yılda bir çok alanda internet ve web teknolojileri yeni bir devrim başlatmıştır. • XML tabanlı web servisleri ve B 2 B çözümleri bu devrimin ikinci adımını oluşturacaktır. • Gartner araştırma göre XML’in önümüzdeki 5 yılda bazı etkileri şu şekilde olacaktır: – 2003 yılı sonunda XML’den önce işlerin nasıl yapıldığını hatırlamak bugün Web’ten önce işlerin nasıl yapıldığını hatırlamak kadar zor olacaktır. – 2005 yılında XML şema ve standartlar kümesi elektronik ticaretin genel bir dili olarak ortaya çıkacaktır. – 2005 yılında bilgi ve uygulama entegrasyonu, platformlar arası içerik taşıma, içerik tarama, anında (just-in-time) yazılım taşıma ve teslimi (delivery) gibi imkanlar sağlayarak elektronik iş işlevsellik ve kapsamını ilerletecek temel teknoloji XML’ dir. XML tabanlı B 2 B Çözümleri, Selim Akyokuş 61
Eğitim Semineri Notu Ve Sunular : http: //sakyokus. ce. dogus. edu. tr/Presentations/xml Doç. Dr. Selim Akyokuş Bilgisayar Mühendisliği Bölümü Doğuş Üniversitesi TEŞEKKÜRLER XML tabanlı B 2 B Çözümleri, Selim Akyokuş 62
3c8415321ba15994a219001d0bf1da0e.ppt