XML Teknolojisine Gerçekçi Yaklaşım Deniz KILINÇ ve Prof. Dr. Alp Kut Bilgisayar Mühendisliği Bölümü Dokuz Eylül Üniversitesi { dkilinc@deu.edu.tr, alp@cs.deu.edu.tr } Özet İlk resmi işaretleme dili olarak gösterilen GML (Generalized Markup Language), 1969 yılında, yasal belgelerin kolay bir şekilde paylaşılabilmesi ve taşınabilmesi amacıyla, yapılan araştırma geliştirme çalışmaları sonucunda ortaya çıkmıştır. GML, 1978 yılında ANSI (American National Standard Institute) kurumunca oluşturulan bir grup tarafından geliştirilmeye başlanmış ve 1986 yılında SGML (Standard Generalized Markup Language) adını alarak, ISO (International Organization for Standardization) kurumu tarafından uluslararası standart (ISO 8879) haline getirilmiştir. SGML in internet üzerindeki uygulamalar için çok karmaşık olması ve HTML in yetersiz kalması büyük bir sorun haline gelmiş ve bu sorunları gidermek için, 1996 yılında XML dilini tasarlamak amacıyla W3C toplanmıştır. XML in basit dizayn yapısının çalışmalarına, 1996 Ağustosunun son günlerinde başlanmış ve yoğun çalışmalar sonucunda, Şubat 1998 de XML 1.0 bir standart olarak W3C tarafından yayınlanmıştır. XML(eXtensible Markup Language), SGML in güç ve esnekliğini içeren basitleştirilmiş, genişletilebilir bir işaretleme dilidir. XML, SGML in alt kümesi olarak gösterilir ve HTML gibi işaretleme etiketlerini kullanır. İlk bakışta, XML teknolojisinin birçok avantaja sahip olduğu görülmektedir. XML yapısal bir text formatına ve okunabilir bir yapıya sahiptir. XML dökümanlarının işlenmesi kolay, işlenme maliyeti de azdır. XML teknolojisi, varolan güvenlik çözümlerini destekler. XML in en önemli özelliği açık bir standart omasıdır. XML sürekli bir gelişim içersindedir ve XML teknolojisi için yeni araçlar yazılmaktadır. XML in avantajları olduğu gibi dezavantajları da vardır. XML teknolojisi bilinçsiz çevrelerce abartıldığı için, XML in aslında bir uygulama, bir programlama dili ya da dünya barışına ve açlığına bir çözüm olmadığı unutulmuştur. Bu abartı yüzünden XML in ne olduğunun yanı sıra, yapabilecekleri hakkında da kafalarda karışıklık oluşmuştur. XML, onu işleyecek ayrıştırıcılara ve uygulamalara ihtiyaç duyar. XML tek başına basit olabilir fakat XML in resmi tasarım hedefleri arasında yer alan ayrıştırma, işleme, entegrasyon, mesajlaşma ve transformasyon gibi işlemler zannedildiği kadar kolay değildir. XML, öğrenmesi, okunması, uygulanması ve test edilmesi kolay bir teknolojidir. B2B gibi uygun uygulamalarda geliştirme zamanını oldukça kısaltır. Sadece bir döküman formatı olmasına rağmen RPC mesajlaşması gibi birçok uygulamada kullanılır. Problem, XML in kullanımına uygun olmayan senaryolarda bile uygunmuş gibi görülüp kullanılmaya çalışılması ve insanın doğası gereği, yeni çıkan teknolojilerin tüm problemlerde uygulanmak istenmesidir. Anahtar Kelimeler: GML, SGML, XML, DOM, B2B uygulamaları, XML in gerçek yüzü.
1. Giriş 1967 yılında Kanada Hükümeti Baskı Ofisinde düzenlenen bir toplantıda, William Tunnicliffe, dökümanlarda, iç içe geçmiş içerik ve format bilgilerinin, birbirinden ayrılması gerektiğini anlatan bir konuşma yaptı. 1968 de New York lu bir kitap yayımcısı, Stanley Rice, kitap yazarları için, döküman formatlarını standart haline getirmek amacıyla bir etiket seti hazırladı. Bu çalışmaya, Grafik Haberleşme Derneği (GCA, Graphic Communications Association), sponsor oldu ve etiket seti kavramının geliştirilmesini sağladı. GCA GenCode komitesi, etiketleme ile işaretleme mantığını birleştirerek, dökümanların, hiyerarşik yapıya sahip olacağını gösterdi. İlk resmi işaretleme dili olarak gösterilen GML (Generalized Markup Language), 1969 yılında, yasal belgelerin kolay bir şekilde paylaşılabilmesi ve taşınabilmesi amacıyla, IBM den Goldfarb, Mosher ve Lorie üçlüsünün yaptığı araştırma geliştirme çalışmaları sonucunda ortaya çıkmıştır. GML in temeli, GCA GenCode komitesinin yaptığı çalışmalara dayanmaktadır. Diğer işaretleme dillerinin atası GML, 1978 yılında ANSI (American National Standard Institute) kurumunca oluşturulan bir grup tarafından geliştirilmeye başlandı. Dil, 1986 yılında SGML (Standard Generalized Markup Language) adını alarak, ISO (International Organization for Standardization) kurumu tarafından uluslararası standart (ISO 8879) haline getirildi. SGML bir metin veya belge kümesinde kullanılan dilin yapısını belirtmek için kullanılan bir dildir. Tüm meta dillerde olduğu gibi, temel bir sözdizimi tanımlar ve bunu kullanarak kendi elemanlarınızı tanımlamanıza izin verir. Havacılık ve otomobil gibi büyük endüstri kuruluşları ve basın alanında bir belgeleme standardı olarak kullanılmıştır ve kullanılmaya devam edilmektedir. Mesela, Oxford ingilizce sözlüğü, SGML daha taslak versiyonlarındayken, bu dile geçirildi ve çok karmaşık bir DTD (Dokuman Type Declaration) tanımlandı. Bu sayede yayında çok özel aramalar yapılabildi ve arama sonucunda ilgisiz binlerce kayıt gelmesi engellendi. Yeni kelimelerin eklenmesi kolaylaştı. SGML çok güçlü bir dil olmasına rağmen, yaratıcıları ve W3C (Word Wide Consortium) üyeleri tarafından, karmaşık yapısı ve yüksek uygulama geliştirme maliyetinden dolayı, Internet tabanlı uygulamalar özellike hızlı ve kolay web yayınları için tercih edilmemiştir. 1989 yılında Tim Berners-Lee ve Anders Berlung internet ortamında daha kolay belge paylaşabilmek için HTML (Hypertext Markup Language) dilini bir SGML uygulaması olarak geliştirdi. Yani, HTML dilinin yapısal tüm elemanları, SGML dilinde tanımlandı. HTML dili bir belgenin içerdiği başlık, font, resim ve tablo gibi bilgileri bilgisayar ortamında, standart bir şekilde görüntülemek ve biçimlendirmek için geliştirilmiş bir dildir. Öğrenilmesi ve uygulanması kolay olduğu için HTML yeni gelişmekte olan web in süratle temelini oluşturmaya başlamıştı. Yalnızca sunum amaçlıdır ve daha önceden tanımlanmış sabit bir etiket kümesi içermektedir. Standart etiket kümesini kendimizin ekleyeceği yeni etiketler ile genişletemeyiz. HTML in içerik yönetiminden çok içeriği görüntüleme amaçlı olması, genişleyebilir bir dil olmaması, meta bir dil olmaması ve diğer zayıflıklarından dolayı, Internet ortamında yeni bir
dilin ihtiyacı hissedildi. Bu yeni dil ne SGML kadar karmaşık, ne de HTML kadar basit olmalıydı. SGML in güç ve esnekliğini içerecek basitleştirilmiş, genişletilebilir bir işaretleme dili Bu ihtiyacı gidermek için, 1996 yılında XML dilini tasarlamak amacıyla W3C toplandı. XML in basit dizayn yapısının çalışmaları, 1996 Ağustosunun son günlerinde başladı ve yoğun çalışmalar sonucunda, 11 hafta gibi kısa bir sürede, SGML 96 konferansında, XML in ilk taslak versiyonu(draft) yayınlandı. Fakat, diğer ayrıntıların tamamlanması bir yıl daha sürdü ve Şubat 1998 de XML 1.0 bir standart olarak W3C tarafından yayınlandı. 2. Kısaca HTML Şekil 1.1 İşaretleme dillerine genel bakış HTML (Hypertext Markup Language), web sayfalarının formatlanması amacıyla yazılmış, bir SGML uygulamasıdır. Önceden tanımlanmış standart etiket kümesine sahiptir. Herbir etiket, sayfanın formatlanmasına dair özel anlam taşır. Etiketler web tarayıcıları tarafından işlenir ve ilgili içeriğin formatlanmış hali, tarayıcı ekranında görüntülenir. İçerisinde Netscape, Internet
Explorer ve Mozilla nın bulunduğu birçok web tarayıcısı mevcuttur. Geliştirilen sayfaların, tüm tarayıcılarda düzgün çalışması için standartların dışına fazla çıkılmamalıdır. HTML sayfaları ilk çıktığı zaman, basit text tabanlı editörlerde, hakkını vererek yazılırken, zamanla çıkan yeni editörler ve Frontpage, Macromedia gibi kod üretici programlar yüzünden tabiri yerindeyse yiğitlik bozulmuştur. İnsanlar ne yazdıklarını bilmeden sürükle bırak metodu ile, HTML sayfalarını yaptıklarını, hatta birer web mühendisi olduklarını sanmaya başlamışlardır. 3. XML XML(eXtensible Markup Language), SGML in güç ve esnekliğini içeren basitleştirilmiş, genişletilebilir bir işaretleme dilidir. SGML in alt kümesi olarak gösterilir ve HTML gibi işaretleme etiketlerini kullanır. Aralarındaki fark, XML işaretleme etiketlerinin, içeriğin ne anlama geldiğini(metadata) tanımlamak için kullanılmasıdır. XML meta bir dildir. Yani, yeni işaretleme dillerini yaratabilme becerisine sahiptir. HTML de SGML den türetilmiş bir dil olmasına rağmen bu özelliği taşımaz. XML Fonksiyonsuz LISP Acrobatsız PDF Ticari anlamsallığı(semantic) olmayan EDI Kelime işleme anlamsallığı olmayan RTF Sıkıştırma olmayan ZIP Multimedyasız FLASH Daha fazla karakter içeren Mors Alfabesi Daha fazla kontrol karakteri içeren Unicode Mao nun binlerce kilometrelik gezisinin ilk adımı Microsoft un Sun a karşı gizli silahı Sun ın Microsoft a karşı açık silahı Siyasilerin ortak buluşabildiği tek yer, TBMM 4. XML in özellikleri ve yaklaşımlar 4.1 XML yapısal bir text formatına sahiptir Avantajları: Bu doğal özelliği sayesinde, içerik bilgisinin yanı sıra, içeriğin ne anlam taşıdığını (metadatasını) yapısal bir formatta tutar. Örneğin bir kitabı tanımlayan elemanları; başlığı, yazarı, bölümleri, bölüm yazıları ve kataloğudur. Bir bölüm yazısını tanımlayan elemanlar ise
paragrafları, satırları ve dipnotlarıdır. Kitabı bu şekilde yapısal tanımlayan bir döküman yaratmak, hem makine hem de insan tarafından okunabilirlik sağlar. Eğer yazardan, kitabın katalog bölümünde bahsedilirse, yapısallık bozulmuş olur. Çoğu metin dosyası bu önemli avantaja sahip değildir. Sadece içerik bilgisini ya da en fazla, buna ek olarak, ini uzantılı dosyalardaki gibi, tek seviyeli metadata bilgisini tutarlar. Sadece içerik bilgisi tutan dosyalarda verileri ayırmak için, genelde virgül ve benzeri karakterler kullanılır. Yapısallık olmadığından okunabilirlik de ortadan kalkar. Dezavantajları: XML dökümanları, içerik bilgisini ve metadatayı yapısal tutarak büyük bir avantaja sahip olmalarına rağmen, bazı projelerde XML e ihtiyaç duyulmadan basit metin dosyaları kullanılarak daha verimli sonuçlar elde edilebilir. Birkaç parametreyi ve değerlerini, tek seviyeli tutmak için, yaratılacak konfigürasyon dosyasını, XML dökümanı yapmak gereksizdir. 4.2 XML okunabilir bir yapıya sahiptir Avantajları: XML teknolojisinin, sık sık kendinden söz ettiren avantajı, hiçbir ön bilgiye gerek duyulmadan, dökümanın, insan ve makine tarafından okunabilir olmasıdır. Okunabilirlik, kendiliğinden, yazılabilirlik avantajını da getirir. XML dökümanlarını yazmak için maliyeti yüksek editörlere gerek yoktur. Dezavantajları: XML genelde farklı sistemler arası iletişimi sağladığından dolayı, insan için okunabilir olması aslında çok fazla birşey değiştirmez. Asıl hedef sistemlerin entegrasyonudur. Mekanizma işlemeye bir kere başladıktan sonra, insanlar belkide uzunca bir süre sisteme dokunmayacaklardır. Fakat formatlı ve okunabilir olması uğruna, dosya ebatları büyültülmüş, ağ trafiği yoğunluğu arttırılmış olur. İnsanlar isterlerse okunabilir olmayan XML dökümanları yaratabilirler. Birçok uygulama geliştirici kendisi açısından anlamlı olan, başkalarınca hiç birşey ifade etmeyen eleman isimleri kullanabilirler. Örneğin <denopas981> etiketi herkez için anlamlı olmayabilir. Bunun yanında Çince ya da Fransızca dilleri kullanılarak yazılan etiket isimleri de olabilir. Bu dilleri bilmeyen birisi için XML dökümanı okunabilir değildir. 4.3 XML dökümanlarının işlenmesi kolay ve maliyeti azdır Avantajları: Diğer dosya formatları ve veritabanlarının en büyük dezavantajlarından birisi, üzerlerinde işlem yapmak için gereken araçların çok pahalı olmasıdır. Bu dezavantaj XML dökümanları için geçerli değildir. Çünkü XML işleme araçları dünya çapında çok yaygındır ve ucuzdur. Düzenli bir yapıya sahip olan XML dökümanlarını işlemek amacıyla birçok ayrıştırıcı tasarlanmıştır. Ayrıştırıcıların çoğu tarayıcılar tarafından otomatik olarak desteklenir. W3C,
xml dökümanlarını işleyebilmek ve ayrıştırabilmek amacıyla ulusal bir method yaratmıştır. DOM(Document Object Model) adı verilen method, ayrıştırma işlemi için en çok kullanılan tekniklerden biridir. Ağaç-tabanlı işlem modeli olarak da adlandırılır. Geliştirilen ayrıştırıcıların çoğu bu metoda göre tasarlanmıştır. Dezavantajları: XML dökümanlarının işlenmesi sadece ayrıştırma demek değildir. Ayrıştırılan döküman verileri üzerinde ilave olarak başka işlemler de yapmak gerekebilir. Aslında çoğu uygulamalarda, ayrıştırma, birçok adım içerisinden ilkidir. Bazı organizasyonlar, ulusal ayrıştırma metodu olan DOM un gerçek iş yaşamı uygulamalarında, çok da pratik olmadığını ve kaynakları kötü kullandığını savunmuştur. Çünkü DOM metodunda, büyük ebatlı dökümanlar da dahil olmak üzere, tüm dökümanlar, bellekte ağaç tabanlı bir modele oturtulur. 4.4 XML teknolojisi, varolan güvenlik çözümlerini destekler Avantajları: XML teknolojisi, mevcut internet ve ağ altyapısını desteklediğinden dolayı, bu altyapılar için belirlenen güvenlik kavramlarına, getirilen çözümler, XML için de geçerlidir. Geçerli olan güvenlik kavramları; Authentication, kullanıcının gerçekten doğru kullanıcı olup olmadığının belirlenmesi; XML belgelerinin iletilmesi sırasında dijital imza ve sertifikaların kullanılması Encryption, verilerin şifrelenmesi; XML in HTTPS üzerinden SSL protokolü kullanılarak iletilmesi. (XMLHTTP objesi) Authorization, bulunduğunuz yerdeki veriye ulaşım hakları (görüntüleme, okuma, yazma, okuma-yazma); Döküman ve protokoller üzerinde uygulanan mevcut tekniklerin XML dökümanlarında da uygulanması Dezavantajları: XML varolan yöntemleri ve protokolleri destekler, fakat teknolojinin çalışma mantığından dolayı, yeni tehditlere açıktır. Mesela, XML dökümanları içerisinden, URI(Uniform Resource Identifier) kullanılarak, harici DTD dosyalarına referans edilmesi, bu risklerden bir tanesidir. XML dökümanını kullanan kullanıcılar, referans edilen URI kaynağının güvenli olup olmadığını bilmeden işlemlerine devam ederler. Kaynağa erişen bir saldırgan, DTD üzerinde çeşitli oynamalar yapabilir; OPTIONAL tipte bir özelliğin tipini REQUIRED yapabilir Özelliklerin varsayılan değerlerini değiştirebilir DTD içerisinde geçen varlıkların (entity), içerik metinleri veya referans ettikleri notasyonlar değiştirilerek, çeşitli virüslerin aktive edilmesi sağlanabilir Ya da, URI kaynaklarının saldırıya uğrayarak ulaşılamaz hale getirilmesi, XML in geçerlilik işleminin iptal olmasına yol açar.
4.5 XML programlama dili ya da dünya barışı için bir çözüm değildir XML teknolojisi çok abartıldığından dolayı, onun aslında bir uygulama, bir programlama dili ya da dünya barışına ve açlığına bir çözüm olmadığı unutulmuştur. XML veriyi ve verinin anlamsallığını, belirli geçerlilik kuralları çerçevesinde, belirli bir formatta saklayan bir dökümandır. Bu abartı yüzünden XML in ne olduğunun yanı sıra, yapabilecekleri hakkında da kafalarda karışıklık oluşmuştur. XML onu işleyecek ayrıştırıcılara ve uygulamalara ihtiyaç duyar. XML tek başına basit olabilir, fakat XML in resmi tasarım hedefleri arasında yer alan, ayrıştırma, işleme, entegrasyon, mesajlaşma ve transformasyon gibi işlemler o kadar da kolay değildir. XML in bir sistem tarafından anlaşılabilir olması için, sistemde bir yerlerde bir kod parçasının, döküman etiketlerinin ne anlama geldiğini bilmesi gerekir. XML standart bir döküman formatı yaratmamızı ve onu kolayca ayrıştırabilmemizi sağlar, fakat her şirket ya da kurum, ortak bir standart yerine, kendi standardını belirlediği için, farklı kurumlar arası haberleşme olabilmesi için, bir ayrıştırıcının yapabileceğinden çok daha fazlasına ihtiyaç vardır. Gerçek hayatta işletmeler, oturup hangi standartlarda veriyi göndereceklerinin anlaşmasına varmalıdır. Bilgi sistemlerinde geçen dil kavramında genelde bir programlama dilinden bahsedilmesine karşın, XML, C++ ya da Delphi gibi bir programla dili değildir, bir işaretleme dilidir. Aslında XML kullanılarak programlama dilleri yazılmaya çalışılmıştır. Fakat kullanılmaları zor olduğu için, uygulama geliştiricileri tarafından edilme tercih edilmemiştir. Function MerhabaDunya : Boolean; Begin Write( Merhaba Dünya ); Result := True; End; <Function Name= MerhabaDunya Type= Boolean > <call function= Write > <param type= String >Merhaba Dünya</param> </call> </Function> 5. Sonuç XML öğrenmesi, okunması, uygulanması ve test edilmesi kolay bir teknolojidir. B2B gibi uygun uygulamalarda geliştirme zamanını oldukça kısaltır. Sadece bir döküman formatı olmasına rağmen RPC mesajlaşması gibi birçok uygulamda kullanılır. En önemlisi, XML açık bir standartdır, sürekli bir gelişim içersindedir ve yeni araçlar yazılmaktadır. Problem, XML in kullanımına uygun olmayan senaryolarda bile uygunmuş gibi görülüp kullanılmaya çalışılması, insanların doğası gereği, yeni çıkan teknolojileri tüm problemlerde uygulamak istemesidir.
6. Kaynakça [1] Harold, E.R., XML Bible, IDG Books Worldwide Inc., United States of America, 1999 [2] DuCharme, Bob, XML: The Annotated Specification, Prentice Hall, 2000 [3] Goldfarb, Charles F., XML Handbook, Pearson Education,2001 XML-DEV mail listesi http://www.xml.org web sitesi http://www.xml.com web sitesi