İçeriğe atla

ABAP

ABAP,İngilizce Advanced Business Application Programming kelimelerinin baş harflerinden oluşan bir kısaltmadır ve Alman yazılım şirketi SAP tarafından geliştirilen üst seviye bir nesne tabanlı programlama dilidir. SAP'nin iş uygulamaları geliştirmek için kullanılan NetWeaver platformunun parçası olan Web Uygulama Sunucusu'nu programlamak amacıyla kullanılır. Sözdizimi COBOL'a benzemektedir.

Tarihçe

ABAP, 1980'lerde geliştirilen pek çok uygulama odaklı 4. nesil dilden biridir. ABAP, başlarda, geniş çaplı şirketlerin kaynak yönetimi finansal planlamalarında kullanacakları iş uygulamaları geliştirmelerine olanak sağlayan SAP R/2 platformu için raporlama diliydi.

ABAP aynı zamanda, Almancada anlamı genel rapor hazırlama işlemcisi olan Allgemeiner Berichts Aufbereitungs Prozessor un kısaltmasıydı, fakat daha sonra Advanced Business Application Programming olarak isimlendirildi. ABAP temel veritabanı seviyesinden yüksek seviyeli bir soyutlama sağlayan mantıksal veritabanı kavramını içeren ilk dillerden biriydi.

ABAP programlama dili orijinal olarak geliştiriciler tarafından SAP R/3 platformunu geliştirmek için kullanıldı. SAP müşterileri ABAP'ı, müşterilerin özel raporlar ve arayüzler geliştirebilecekleri SAP uygulamaları geliştirmek için kullanmayı tasarlıyorlardı. Dil programlamacılar için öğrenmesi oldukça kolaydır fakat programlamacı olmayanlar için direkt kullanılabilecek bir araç değildir. ABAP programları oluşturabilmek için ilişkisel veritabanı tasarımı ve tercihen nesne odaklı kavram bilgisini içeren programlama yetenekleri gereklidir.

ABAP, SAP 1992 yılında ilk yayımlandığında, istemci-sunucu R/3 sistemi için programlar oluşturmak için yapılandırıldı. 1990 larda gelişen bilgisayar donanımıyla birlikte SAP uygulamaları ve sistemler de ABAP'da yazıldı. 2001 yılına kadar btüm en temel fonksiyonlar ABAP'da yazıldı. 1999 yılında, SAP, R/3 4.6 sürümüyle beraber, ABAP 'a uzantı olarak ABAP nesnelerini yayımladı.

SAP'ın en yeni geliştirme platformu NetWeaver hem ABAP hem Java'yı destekler.

Uygulama

ABAP programı nerede çalışır

Tüm ABAP programları SAP veritabanında bulunur. Java ve C++ programları ayrı dış dosyalarda depolanmazlar. Veritabanında tüm ABAP kodları iki şekilde bulunur: ABAP Workbench araçları ile görüntülenebilen ve düzenlenebilen kaynak kodu ve Java bytekodu gibi düşünülebilecek ikili gösterimde "üretilmiş kod". ABAP programları, SAP çekirdeğinin parçası olan çalışma zamanı sisteminin kontrolü altında çalışırlar. Çalışma zamanı sistemi ABAP ifadelerini işlemekten, ekranların akış mantığını kontrol etmekten ve olaylara(kullanıcının ekran butonuna tıklaması gibi) cevap vermekten sorumludur. ABAP çalışma zamanı sisteminin anahtar bileşenlerinden biri, veritabanından bağımsız ABAP ifadelerini ("open sql") tabanda yer alan dbms (veri tabanı yönetim sistemi) in anlayabileceği ifadelere ("native sql") çeviren veritabanı arayüzüdür. Veri tabanı arayüzü, ABAP programları adına, ilişkisel veri tabanıyla olan tüm iletişimi ele alır, aynı zamanda uygulama sunucusunun yerleşik belleğinde sık erişilen veriyi ara belleğe almak gibi ekstra özellikler içerir.

SAP'ın üç farklı katmanı, sunum katmanı, uygulama katmanı (programlar bunun üstünde çalışır) ve kullanıcının hazırladığı durumlardan ve son kullanıcının sunum katmanından verdiği komutlardan tüm verinin kazanıldığı ve depolandığı veri tabanı katmanıdır.

SAP temeli

Söz dizim kontrolü, kod üretimi, çalışma zamanı sistemini içeren ABAP dil ortamı, SAP temel bileşen parçasıdır. SAP temeli, tipik olarak SAP web uygulama sunucusunun frameworkünde uygulanan Sap uygulamalarının tüm rencini destekleyen teknolojik platformdur. Bu açıdan SAP temeli, üzerinde SAP uygulamalırının çalıştığı işletim sistemi olarak görülebilir. Tüm işletim sistemleri gibi, SAP temeli hem düşük seviyeli servisleri(örnek olarak hafıza yönetimi, veritabanı iletişimi ya da web istemleri sunumu) hem de son kullanıcılar ve yöneticiler için yüksek seviyeli araçları içerir. Bu araçlar, direkt olarak tabandaki işletim sisteminde çalışan çalıştırılabilirler(SAP kernel) olabilir ya da ABAP'da geliştirilmiş ya da web tabanlı arayüzler olabilir. SAP temeli, iş uygulamaları, işletim sistemi ve veritabanı arasında bir soyutlama tabakası sağlar. Bu, uygulamaların direkt olarak özel bir sunucuya ya da veritabanı platformuna bağımlı olmamasını ve bir platformdan diğerine kolaylıkla taşınmasını sağlar.

SAP temeli şu anda UNIX (AIX, HP-UX, Solaris, Linux), Microsoft Windows, IBM System i üzerinde i5/OS (formerly iSeries, AS/400) ve IBM System z üzerinde z/OS (resmi olarak zSeries, S/390) sistemlerinde çalışır. Desteklenen veritabanları DB2, Informix, MaxDB, Oracle ve Microsoft SQL Server dır. (Informix için destek SAP Basis 7.00 sürümü ile beraber kaldırılmıştır).

SAP sistemleri ve biçimlendirmeleri

Tüm SAP verileri bir SAP isteminde bulunur ve tüm SAP yazılımları bu sistem üstünde çalışır. Böyle bir sistem merkezi bir ilişkisel veritabanı ile veri tabanındaki verilere ve uygulamalara erişen bir ya da daha fazla uygulama sunucusundan (örnekler) oluşur. Bir SAP sistemi boyut ve performans gibi nedenlerden en az bir ya da daha fazla örnek içerir. Çok örnek içeren bir sistemde yükleme dengeleme mekanizmaları yüklemenin uygun uygulama sunucularına dağılmasını sağlar. web uygulama sunucusu kurulumları tipik olarak üç sistemden oluşur: geliştirme sistemi, test etme ve kontrol sistemi, üretim sistemi. Biçimlendirme daha fazla sistem içerebilir: buna birim sistemi ve üretim öncesi testi için ayrık sistemler kullanılmasını örnek verebiliriz, biçimlendirme daha az sistem içerebilir buna olarak da ayrık kalite kontrol sistemi olmadan, sadece geliştirme ve üretim sistemlerinin bulunduğu bir biçimlendirmeyi örnek verebiliriz, yine de genellikle üç sistemli düzenleme kullanılır. ABAP programları geliştirme sisteminde oluşturulur ve ilk teste verilir. Sonra biçimlendirmedeki farklı sistemlere dağıtılır. Bu işlemler eş zamanlılık kontrolünden, versiyon yönetiminden ve programların kalite kontrol ve üretim sistemleri üzerine yerleştirilmesinden sorumlu olan değiştirme ve taşıma sisteminin kontrolü altında yer alır.

Web uygulama sunucusu üç katmandan oluşur: veri tabanı katmanı, uygulama katmanı ve sunum katmanı. Bu katmanlar aynı ya da farklı fiziksel makineler üstünde çalışır

Örnek:

*-----------------------------------------------------------------------
* set an exclusive lock at level object-type & object-id
*-----------------------------------------------------------------------
 IF NOT lf_bapi_error = true.
   IF (NOT istourhd-doc_type IS INITIAL) AND
      (NOT istourhd-doc_id IS INITIAL).
     CALL FUNCTION 'ENQUEUE_/DSD/E_HH_RAREF'
          EXPORTING
               obj_typ        = istourhd-doc_type
               obj_id         = istourhd-doc_id
          EXCEPTIONS
               foreign_lock   = 1
               system_failure = 2
               OTHERS         = 3.
     IF sy-subrc <> 0.
*       terminate processing...
       lf_bapi_error = true.
*       ...and add message to return table
       PERFORM set_msg_to_bapiret2
            USING    sy-msgid gc_abort sy-msgno
                     sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
                     gc_istourhd gc_enqueue_refdoc space
            CHANGING lt_return.
     ENDIF.
   ENDIF.
 ENDIF. " bapi error

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">MySQL</span>

MySQL, altı milyondan fazla sistemde yüklü bulunan çoklu iş parçacıklı, çok kullanıcılı, hızlı ve sağlam bir veri tabanı yönetim sistemidir.

<span class="mw-page-title-main">ColdFusion</span>

ColdFusion bir programlama dilidir. Daha çok web tabanlı uygulamalar yazmakta kullanılır. JJ Allaire ve kardeşi Jeremy Allaire tarafından geliştirilen ColdFusion, sonradan Macromedia ile Allaire firmalarının birleşmesi sonucu Macromedia bünyesine katılmıştır. Gelişmiş web programcılarının kullandığı bir programlama dilidir. MySQL, PostgreSQL, Oracle, MS SQL, DB2,Ms Access, dBASE, FoxPro ve Paradox veritabanlarıyla uyumlu olarak çalışabilir. Allaire ve Macromedia bünyesinden sonra Adobe firması tarafından satın alınıp geliştirilmeye devam edilmektedir.

<span class="mw-page-title-main">Yazılım</span> bilgisayarın somut olmayan çalıştırılabilir bileşeni

Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik aygıtların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makine komutlarıdır.

SQL, verileri yönetmek ve tasarlamak için kullanılan bir dildir. SQL, kendi bir programlama dili olmamasına rağmen birçok kişi tarafından programlama dili olarak bilinir. SQL herhangi bir veri tabanı ortamında kullanılan bir alt dildir. SQL ile yalnızca veri tabanı üzerinde işlem yapılabilir; veritabanlarında bulunan sistemlere bilgi ekleme, bilgi değiştirme, bilgi çıkarma ve bilgi sorgulama için kullanılmaktadır. Özellikle de ilişkisel veritabanı sistemleri üzerinde yoğun olarak kullanılmaktadır. SQL'e özgü cümleler kullanarak veri tabanına kayıt eklenebilir, olan kayıtlar değiştirilebilir, silinebilir ve bu kayıtlardan listeler oluşturulabilir.

Veritabanları, yapılandırılmış bilgi veya verilerin depolandığı alanlardır. Bilgi artışıyla birlikte bilgisayarda bilgi depolama ve bilgiye erişim konularında yeni yöntemlere ihtiyaç duyulmuştur. Veritabanları; büyük miktardaki bilgileri depolamada geleneksel yöntem olan "dosya-işlem sistemine" alternatif olarak geliştirilmiştir. Telefonlardaki kişi rehberi günlük hayatta çok basit bir şekilde kullanılan veri tabanı örneği olarak kabul edilebilir. Bunların dışında internet sitelerindeki üyelik sistemleri, akademik dergilerin ve üniversitelerin tez yönetim sistemleri de veritabanı kullanımına örnektir. Veritabanları sayesinde bilgilere ulaşılabilir ve onları düzenlenebilir. Veritabanları genellikle bireysel olarak satın alınamayacak kadar yüksek meblağlara sahip olmasına karşın; ücretsiz kullanıma açılan akademik veritabanları da bulunmaktadır. Akademik veritabanları aracılığıyla bazen bibliyografik bilgi bazen de tam metinlere erişmek mümkündür. Veritabanları, veritabanı yönetim sistemleri aracılığıyla oluşturulur ve yönetilir. Bu sistemlere; Microsoft Access, MySQL, IBM DB2, Informix, Interbase, Microsoft SQL Server, PostgreSQL, Oracle ve Sysbase örnek olarak verilebilir.

Kaydedilmiş işlev, veritabanı yönetim sistemlerinde veritabanı istemcisinden tüm komut dizilerini çağırmak için kullanılabilen bir komuttur. Bu nedenle, bir dizi kayıtlı komutu çalıştıran bağımsız bir komuttur. Kaydedilmiş işlevler, ilgili veritabanının veri sözlüğüne kaydedilir.

<span class="mw-page-title-main">PostgreSQL</span> Veri tabanı yönetim sistemi

PostgreSQL ya da Postgres, özgür ve açık kaynak kodlu, SQL destekli bir ilişkisel veritabanı yönetim sistemidir.

Veri tabanı yönetim sistemi, veri tabanlarını tanımlamak, yaratmak, kullanmak, değiştirmek ve veri tabanı sistemleri ile ilgili her türlü işletimsel gereksinimleri karşılamak için tasarlanmış sistem ve yazılımdır. Bu sistemlere örnek olarak MySQL, PostgreSQL, Microsoft SQL Server, Oracle Database ve Microsoft Access gösterilebilir.

<span class="mw-page-title-main">Django</span> Python web çerçevesi

Django, Python Programlama Dili için hazırlanmış ve BSD lisansı ile lisanslanmış yüksek seviyeli bir web çatısıdır. Basit kurulumu ve kullanımı, detaylı hata raporu sayfaları ve sunduğu yeni arayüz kodlama yöntemleriyle diğer sunucu yazılımı ve çatılardan kendini ayırmaktadır. İsmi, caz gitaristi Django Reinhardt'tan gelmektedir.

<span class="mw-page-title-main">IBM Db2</span> IBM tarafından geliştirilmiş ilişkisel veritabanı yönetim sistemi

IBM DB2, IBM tarafından geliştirilmiş ilişkisel veritabanı yönetim sistemidir. Unix başta olmak üzere Linux, IBM i, Z/OS ve Windows sunucularında çalışır. IBM, DB2'nin yanı sıra bir başka veritabanı yönetim sistemi(RDBMS) olan Informix'i de 2001 yılında satın almıştır.

Bilgisayar bilimleri'nde NoSQL, klasik ilişkisel veritabanı yönetim sistemlerinden (İVTYS) bir şekilde farklı olan veritabanı yönetim sistemleri için kullanılan bir kavramdır. Bu veri depolarının sabit tabela düzenlerine ihtiyaçları olmayabilir, alışılagelmiş join işlemleri kullanılmaz, tipik olarak yatay ölçeklemeye gidilir. Akademisyenlerce ve makalelerde tipik olarak böyle veri depolarına yapılanmış bellek denir. Bu kavram klasik ilişkisel veritabanlarını altküme olarak görür. Bu kavram aynı zamanda SQL ve Daha Fazlası olarak da adlandırılmaktadır.

<span class="mw-page-title-main">SQL enjeksiyonu</span>

SQL enjeksiyonu, veri tabanına dayalı uygulamalara saldırmak için kullanılan bir atak tekniğidir; burada saldırgan SQL dili özelliklerinden faydalanarak standart uygulama ekranındaki ilgili alana yeni SQL ifadelerini ekler.. SQL enjeksiyonu, uygulamaların yazılımları içindeki bir güvenlik açığından faydalanır, örneğin, uygulamanın kullanıcı giriş bilgileri beklediği kısma SQL ifadeleri gömülür, eğer gelen verinin içeriği uygulama içerisinde filtrelenmiyorsa veya hatalı şekilde filtreleniyorsa, uygulamanın, içine gömülmüş olan kodla beraber hiçbir hata vermeden çalıştığı görülür. SQL enjeksiyonu, çoğunlukla web siteleri için kullanılan bir saldırı türü olarak bilinse de SQL veri tabanına dayalı tüm uygulamalarda gerçeklenebilir.

Bilgisayar yazılımında veri erişim katmanı, tutarlı bir depoda saklanan veriye basitçe erişim sağlayan bir bilgisayar programı katmanıdır, bu tutarlı depoya varlık-ilişki veritabanı örneği verilebilir. Bu yapı ismi Microsoft.ASP.NET ortamlarında yaygın bir şekilde kullanılır.

Bu nesne-ilişkisel veritabanı yönetim sistemlerinin (ORDBMSs) bir karşılaştırmasıdır. Her bir sistemin bir amacı, ilişkisel veritabanının, en azından bazı özellikleri vardır; onların bütünlüğü içinde çok değişkendir ve yaklaşımları alınmıştır.

<span class="mw-page-title-main">Java Database Connectivity</span>

Java Database Connectivity (JDBC), Java programlama dilinde yazılmış uygulamaların veritabanı ile etkileşime girmesini sağlayan bir uygulama programlama arayüzüdür (API). JDBC ile hemen hemen tüm ilişkisel veri tabanı yönetim sistemlerine SQL sorgusu gönderilebilmektedir.

İlişkisel veritabanı, 1970 yılında Edgar Frank Codd tarafından önerildiği gibi, organizasyonu ilişkisel veri modeline dayanan bir dijital veritabanıdır. İlişkisel veritabanlarını korumak için kullanılan çeşitli yazılım sistemleri bir ilişkisel veritabanı yönetim sistemi (RDBMS) olarak bilinir. Neredeyse tüm ilişkisel veritabanı sistemleri, sorgulama ve veritabanının bakımı için dil olarak SQL(Structured Query Language) kullanmaktadırlar.

<span class="mw-page-title-main">HeidiSQL</span>

HeidiSQL; MySQL'in yanı sıra Microsoft SQL Server ve PostgreSQL için ücretsiz ve açık kaynaklı bir istemcidir. Kullanıcılar HeidiSQL ile veritabanlarını yönetmek için, bir oturum oluşturarak kabul edilebilir kimlik bilgileri olan bir yerel veya uzak MySQL sunucusuna giriş yapmalıdır. Bu oturumda kullanıcılar MySQL veritabanlarını bağlı MySQL sunucusu içinde yönetebilir ve bittiğinde sunucudan bağlantısını kesebilir. Özellik kümesi, en yaygın ve gelişmiş veritabanı, tablo ve veri kaydı işlemleri için yeterlidir, ancak bir SQL veritabanı önündeki tam işlevselliğe doğru aktif olarak gelişmeye devam etmektedir.

SQL Server Compact veya SQL CE Mobil cihazlar ve masaüstü uygulamalar için Microsoft tarafından üretilen kompakt bir ilişkisel veritabanıdır. Masaüstü platformunun tanıtımından önce, Windows CE ve SQL Server Mobile Edition için SQL Server olarak biliniyordu. En yeni sürüm SQL Server Compact 4.0, .NET Framework 4.0'ı destekliyor ve bu sürümde Windows Mobile için destek bırakıyor. Hem 32 bit hem de 64 bit yerel desteği içerir. SQL CE zaman zaman bağlı uygulamaları ve uygulamaları gömülü bir veritabanı ile hedefler. İndirmek ve yeniden dağıtmak serbesttir. SQL CE için bir ODBC sürücüsü yoktur ve planlanmamış biridir. Yerel uygulamalar, OLE DB aracılığıyla SQL CE'yi kullanabilir.

Veritabanı güvenliği, çok çeşitli bilgi güvenliği kontrollerinin kullanımı ile ilgilidir ve veri tabanlarınının(imkân dahilinde verileri, veritabanı uygulamalarını veya kayıt edilmiş işlevleri, veri tabanı sistemlerini, veritabanı sunucularını ve ilişkili ağ bağlantılarını içerir.) gizliliğini, bütünlüğünü ve erişilebilirliğini saldırılara karşı korur. Teknik, idari, yargı ve fiziksel gibi çeşitli türde ve kategoride kontroller veritabanı güvenliği kapsamı içerisine girer. bilgisayar güvenliği, bilgi güvenliği ve risk yönetimi alanları içerisinde, veritabanı güvenliği uzmanlık gerektiren bir konudur.

Belge odaklı veritabanı veya belge deposu, yarı yapılandırılmış veriler olarak da bilinen belge odaklı bilgileri depolamak, almak ve yönetmek için tasarlanmış bir bilgisayar programı ve veri depolama sistemidir.