Ege Üniversitesi Uluslararası Bilgisayar Enstitüsü



Benzer belgeler
Akıllı Kart Yazılımlarının Model Güdümlü Geliştirilmesi

JAVA CARD YAZILIMLARININ MODEL GÜDÜMLÜ GELİŞTİRİLMESİ

Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım

DSL4JavaCard: Java Card Platformu için bir Alana Özgü Dil

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Android e Giriş. Öğr.Gör. Utku SOBUTAY

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Bilişim Garaj Akademisi Nedir?

1. Admin kullanıcı ile sisteme giriş yapınız. Ekranın sağ üstünde yer alan defter yaprakları ikonuna tıklayınız.

C# nedir,.net Framework nedir?

BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

R ile Programlamaya Giriş ve Uygulamalar

Yazılım Kodlama ve İ simlendirme Standartları v1.0

MOBILEPAX SOAP PRODUCT API KULLANIM ŞEKLİ

4. Bölüm Programlamaya Giriş

Kurumsal bilgiye hızlı ve kolay erişim Bütünleşik Belge Yönetimi ve İş Akış Sistemi içinde belgeler, Türkçe ve İngilizce metin arama desteği ile içeri

UBL UBL Türkiye Özelleştirmesi TEMEL BİLGİLER

MATRİKS E-BROKER ELEKTRONİK İŞLEM PLATFORMU MATRİKS TRADER VE JAVA MATRİKS ENTEGRASYONLARI

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

AlgoTrader. Algorithmic Trading Platformu. Matriks Bilgi Dağıtım Hizmetleri A.Ş.

VIDEOCELL API. Versiyon 1.0.0

PAKET TRANSFER SİSTEMİ

Tek Arayüz. Çok Fonksiyon. Kolay Kullanım. Komut Satırı ile Vedalaşın

Kanı-İstek-Hedef Etmenlerinin Model Güdümlü Geliştirilmesi

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

ÖZGÜR YAZILIMLAR İLE J2EE

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

BENZERSİZ SORUNLARA BENZERSİZ ÇÖZÜMLER

API v2 Multi Smart Card ( ) 4- VERİİMZA API ile bir web uygulaması nasıl haberleşir?

BBS515 Nesneye Yönelik Programlama. Ders 1 Zümra Kavafoğlu

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

BİL-142 Bilgisayar Programlama II

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

Programlama Dillerinde Kullanılan Veri Tipleri

Öğr. Gör. Serkan AKSU 1

TÜRKİYE ELEKTRONİK FON ALIM SATIM PLATFORMU WEB SERVİS İŞLEMLERİ

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

PAKET TRANSFER SİSTEMİ

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

ŞARTNAME TAKİP PROGRAMI (STP2006)

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

TC KİMLİK NO SMS GÖNDERİM SOAP API

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Model Tabanlı Geliştirmede Çevik Süreç Uygulanması

Bahar. BM 211 Programlama Dilleri 3 1

efatura UYGULAMASI HAKKINDA

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

HSancak Nesne Tabanlı Programlama I Ders Notları

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Sunum İçeriği. Programlamaya Giriş

Data Structures Lab Güz

-A Grubu- MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

Üst Düzey Programlama

İNÖNÜ ÜNİVERSİTESİ MALATYA MESLEK YÜKSEKOKULU DERS TANITIM FORMU. Kredisi AKTS Eğitim Dili Tipi: Zorunlu/ Saat

Görsel Programlama-I (Visual Programming) 2.Hafta

Java Temel Özellikleri

SBE16 / Akıllı Metropoller Ekim 2016 / İSTANBUL

Zirve e-fatura Portal Paketi V. 1.0.xx

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Java Dersi. Altuğ Bilgin Altıntaş

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir:

NX Motion Simulation:

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

WINDESKCONCENTO. sıgnum. Kurumsal İş Süreçleri Uygulamaları. windesk.com.tr

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

BİL-141 Bilgisayar Programlama I (Java)

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

Bilgisayar Mimarisi Nedir?

Proje 1. Arayüz Tasarımı

Ontoloji Tabanlı Çok-etmenli Sistemlerin Model Güdümlü Geliştirilmesi

Kargo Modülü. Diğer modüller ile entegre çalışan Kargo modülü ile satış irsaliyesifaturasıoluşturduktan

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER

SPARC v8 İŞLEMCİ SİMÜLASYONU


TÜİK e-vt Teknik Kılavuz

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

JAVA API v2.0 Belge sürümü: 2.0.2

ÜST MODELE DAYALI MODEL DÖNÜŞÜMLERİ EGE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Ağ Trafik ve Forensik Analizi

OBEE (Call Statistic Reporter)

Ders Adı : Nesne Tabanlı Programlama-I Ders No : Teorik : 3 Pratik : 1 Kredi : 3.5 ECTS : 4. Ders Bilgileri.

Bilgisayar İşletim Sistemleri BLG 312

Transkript:

Hidayet Burak SARITAŞ Geylani KARDAŞ Ege Üniversitesi Uluslararası Bilgisayar Enstitüsü 4 Kasım 2010

Akıllı kartlar Amaç Model Güdümlü Uygulama Geliştirme Platform Bağımsız Akıllı Kart Modeli Platforma Özgü Modeller Akıllı Kart Uygulamalarının Modellenmesi Cüzdan uygulaması Modeller arası Dönüşüm (M2M) Platform-Bağımsız Modelden Platforma-Özgü Modellere(M2M) PSM (Platforma-Özgü) aşamasında Modelleme Akıllı Kart Uygulamaları için Otomatik Kod Üretme Üretilen Kodun İçeriği Plan ve Sonuç 2

Dahili mikro işlemciye sahip plastik kartlar Veriyi işleme ve saklama yeteneğine sahip ISO/IEC 7816 ile standartlaştırılmış fiziksel ve iletişim altyapısı Kullanım alanları: Kredi kartları - Sim kartları Pasaportlar - Ulaşım kartları Sağlık kartları Kimlik kartları Kullanım nedenleri: Güvenlik Taşınabilirlik Otomasyon 3

APDU (Application Protocol Data Unit) Akıllı kart ile okuyucu arasında tüm iletişim, uygulama protokolü veri yapısı olarak adlandırılan APDU paket yapısı ile sağlanır Geliştirilen uygulamalar bu paket yapısını kullanarak, alttaki protokolden bağımsız olarak kart ile iletişim kurabilir. APDU Komutu Uygulama Cevap APDU 4

Farklı akıllı kartlar için farklı uygulama geliştirme platformları Java Card ( Java Card Development Environment ) Basic Card (ZC-Basic Language) Alt Seviye iletişim yapısı Donanımsal sebepler Sınırlı Hafıza 5

Belli bir dile bağlı kalmaksızın, farklı platformlara, ISO/IEC 7816 standartlarına ve temel programlama gereklerine uyumlu platform bağımsız bir akıllı kart metamodeli oluşturmak Metamodelden örnek modeller oluşturabilmek için görsel bir kullanıcı arayüzü Farklı akıllı kart platformlarına özgü metamodeller ve görsel bir kullanıcı arayüzü oluşturmak Java Card Basic Card Modeller arası dönüşüm kuralları oluşturmak(m2m) Hazırlanan modellerden akıllı kart koduna dönüşüm işlemleri (M2T) 6

Akıllı Kart Platform-Bağımsız Metamodeli ATL Dönüşüm Kuralları Platforma Özgü Java Card Metamodeli MOFScript (M2M) (M2T) Platforma Özgü Basic Card Metamodeli Otomatik Üretilen Akıllı Kart Kodu 7

Model Güdümlü Geliştirme (MDD Model Driven Development) ile yazılım geliştirme süreci modeller üzerinden tanımlanmaya çalışılmıştır. Gerçek anlamda, üretilen modeller, Model Tabanlı Mimari (MDA) bakış açısına göre akıllı kartlar için platform bağımsız model, Java Card ve Basic Card için platforma özgü metamodeller olarak adlandırılabilir Geliştirilen Metamodeller Eclipse modelleme ortamı üzerinde Ecore metamodeli kullanılarak tasarlanmıştır Eclipse Modeling Framework (EMF) EMF, yeni bir model geliştirebilme ve bu model için gerçek zamanlı kod üretebilmeyi sağlayan araçlar sunmaktadır 8

Platform Bağımsız Metamodel Belli bir uygulama geliştirme platformuna bağlı kalmadan akıllı kart uygulamaları geliştirebilmek Daha sonra eklenebilecek dile özgü platformlara uyarlanabilecek esnek bir yapı Modellerin kolay anlaşılır ve geliştirilebilir olması 9

Hazırlanan Akıllı Kart Metamodeli 10

Metamodelin anahtar öğesi Application model elemanıdır Esas olarak bir akıllı kart programını temsil etmektedir Akıllı kart uygulaması geliştirirken bir başlangıç noktası olarak görülmekte ve her akıllı kart örnek modeli içine eklenmektedir Modelleme ortamında tanımlanabilen tüm sabitler, işlemler, ilişkiler ve veri tipleri tümüyle Application elemanı ile bağlantılıdır. 11

APDU (Uygulama protokolü veri yapısı) Okuyucu ile akıllı kart arasındaki veri iletiminin sağlandığı paket yapısıdır APDU işlemleri için bir üst modeldir APDUOperation Modelleme ortamı üzerinde herhangi bir APDU işlemini tanımlayabilmek için tüm öğeleri içerir commandapdu ve responseapdu elemanları bu eleman içinde tanımlanabilmektedir. Gelen bir APDU paketinin nasıl işleneceği ve hangi işlemleri çalıştıracağı ile ilgili bilgileri tutabilmektedir. Including 12

PIN Akıllı Kart programlarına yetkili erişim sağlamak için şifre tanımlarının yapılabildiği bir ara yüz sağlar. Okuyucu ile akıllı kart arasında bir bağlantı açılmadan önce PIN değerinin doğrulaması yapılmaktadır Okuyucu PIN değerini içeren bir APDU paketini gönderir ve akıllı kart içindeki uygulama bu değerin kontrolünü yapar Doğrulama ve pin değerini ilkleme komutları otomatik olarak üretilir Application elemanı ile arasında Access_key ilişkisi kurulmalıdır 13

Constant vedata elemanları veri tipi tanımlamaları yapmak amacıyla kullanılmaktadır. SCDataTypes number numberarray string boolean byte Kullanıcı tanımlı veri tipleri için DataUnit Farklı veri tiplerini bir araya toplayarak yeni bir veri tipi oluşturulabilmektedir. Instance Akıllı kart metamodelindeki tüm veri tipleri platforma özgü modellerde uygun veri tiplerine dönüştürülmektedir. 14

Platforma Özgü Metamodel Otomatik kod üretiminden önce, akıllı kart metamodelinden dönüşümlerin yapıldığı seviye Dile bağlı özellikler içermesi Platformlar hakkında bilgisi olan geliştiriciler için modellenen uygulamayı daha çok geliştirebilme imkanı 15

Hazırlanan Java Card Metamodeli 16

Hazırlanan Basic Card Metamodeli 17

Basit elektronik cüzdan komutları Para düşme (Debit), Bakiye öğrenme (getbalance) İndirim (Discount), Kredi yükleme (Credit) Her komut için bir APDUOperation işlemi Programda kullanılabilecek Constan tanımları Çalıştırılan komutlar için geri dönüş hata değerleri maxbalance, maxpinsize, pintrylimit gibi tanımlar 18

Modelleme ortamı Eclipse platformu üzerinde Grafiksel Modelleme (GMF) araçları kullanılarak tanımlanmıştır. Geliştiriciler, akıllı kart sistemlerini modelleyebilmek amacıyla görsel editör ortamını kullanabilmektedirler. GMF üzerinde metamodel elemanları için görsel özellikler ve kısıtlar belirlenmiştir. 19

Akıllı Kart programı modelleyebilmek için gerekli olan elemanlar bir palet üzerinde tanımlanmıştır. Yanlış bir ilişki kurulmasını engellemek ve tasarlanan modellerin tutarlı olması sağlamak için bazı kısıtlar bulunmaktadır. Command ve response APDU elemanları sadece APDUOperation elemanı içerisinde tanımlanabilmektedir. İlişki okları sadece ilgili elemanlar arasında oluşturulabilmektedir. 20

Constant elemanı Application içinde ya da DataUnit içinde tanımlanabilir. Constant ve Data elemanları ilgili olmadıkları bir alanda kullanılamazlar. Bir adet Application elemanı tanımlanabilir. Bir cüzdan uygulaması nasıl modellenir? 21

Akıllı Kart modelleme araçları ile hazırlanan elektronik cüzdan modeli 22

Modeller arası dönüşüm kuralları ATL dili ile geliştirilmiştir. Akıllı kart örnek modelinden, platform bağımsız modellere(java Card PSM, Basic Card PSM) ayrı ayrı dönüşüm kuralları yazılmıştır. Grafiksel modelleme arayüzü ile oluşturulan örnek modeller için otomatik olarak oluşturulan Ecore formatı, ATL dönüşüm kurallarına girdi olarak verilmektedir. 23

Akıllı Kart Metamodeli Platform Bağımsız Metamodeli Java Card Metamodeli Basic Card Metamodeli SCProject JCProject ZCardProgram Application Applet DefinitionFile APDUOperation (command response) Method Command PIN PIN Attribute Constant Field Constant Akıllı Kart Modelinden Platforma Özgü Modellere Dönüşümler 24

SmartCard2JavaCard.atl rule SmartCard2JavaCard{ from smartcard : MM!SCProject to javacard : MM1!JCProject( title <- smartcard.title, rootapplet <- Set{MM! Application.allInstances()}, ownerpin <-Set{MM!PIN.allInstances()}, aggregation <- Set{MM!Access_key.allInstances()})} rule Application2Applet{ from appl : MM!Application to app_let : MM1! Applet( name <- appl.name, fields<- Sequence{appl.constants, appl.datas}, methods<- appl.getassociations())} 25

<?xml version="1.0" encoding="utf-8"?> <SCard:SCProject xmi:version="2.0" xmlns:xmi="http://www.omg.org/xmi" xmlns:scard="org.smartcard.com" title="bank.purse"> <apl name="wallet" AID=""> <datas name="balance" type="number"/> <constants name="wallet_cla" type="byte" value="0xb0" comment="code of CLA byte in the command APDU header"/> <constants name="verify" type="byte" value="0x20" comment="codes of INS byte in the command APDU header"/> <constants name="credit" type="byte" value="0x30"/> <constants name="debit" type="byte" value="0x40"/>... <?xml version="1.0" encoding="iso-8859-1"?> <JCard:JCProject xmi:version="2.0" xmlns:xmi="http://www.omg.org/xmi" xmlns:jcard="org.javacard.com" title="bank.purse"> <rootapplet name="wallet"> <methods visibility="private" name="credit "> <fields static="true" comment="" name="creditamount" final="true" InitializeValue="" datatype="jcbyte"/> </methods> <methods visibility="private" name="debit"> <fields static="true" comment="" name="debitamount" final="true" InitializeValue="" datatype="jcbyte"/> </methods> <methods visibility="private" name="getbalance"/> <fields static="true" comment="" name="wallet_cla" final="true" InitializeValue="0xB0" datatype="jcbyte"/> <fields static="true" comment="" name="verify" final="true" InitializeValue="0x20" datatype="jcbyte"/> <fields static="true" comment="" name="credit" final="true" InitializeValue="0x30" datatype="jcbyte"/> <fields static="true" comment="" name="debit" final="true" InitializeValue="0x40" datatype="jcbyte"/>... 26

<?xml version="1.0" encoding="iso-8859-1"?> <JCard:JCProject xmi:version="2.0" xmlns:xmi="http://www.omg.org/xmi" xmlns:jcard="org.javacard.com" title="bank.purse"> <rootapplet name="wallet"> <methods visibility="private" name="credit "> <fields static="true" comment="" name="creditamount" final="true" InitializeValue="" datatype="jcbyte"/> </methods> <methods visibility="private" name="debit"> <fields static="true" comment="" name="debitamount" final="true" InitializeValue="" datatype="jcbyte"/> </methods> <methods visibility="private" name="getbalance"/> <fields static="true" comment="" name="wallet_cla" final="true" InitializeValue="0xB0" datatype="jcbyte"/>... 27

Java Card modelleme araçları ile hazırlanan başka bir elektronik cüzdan modeli 28

Modellerden kod üretme amacıyla geliştirilen dönüşüm kodları MOFScript dili ile yazılmıştır. MOFScript, Eclipse içinde bir araç olarak kullanılabilmekte ve geliştirilen modellerden herhangi bir anda kod üretilebilmektedir. Hazırlanan model elamanlarının ve ilişkilerinin Ecore formatında tutulduğu dosya, MOFScript için bir girdi olarak algılanmaktadır. 29

Java Card MofScript Kodları self.rootapplet->foreach(c:ec.jclass) { ' public class ' c.name ' extends Applet { ' c.fields->foreach(c2:ec.field) { if (c2.visibility == "none") { ' public ' } else { ' ' c2.visibility ' '} if (c2.static) { ' static '} if (c2.final) { ' final '} if (c2.isarray) { var aggrrelation:list self.aggregation->foreach(c5:ec.aggregation) { if ((c5.source.name = c.name)) { if (c5.target.name = c2.name) { aggrrelation.add(c5)}}} if (aggrrelation.size() > 0) { aggrrelation->foreach(c5:ec.aggregation){ c5.target.name ' ' c2.name '[] = new ' c5.target.name'[' c5.cardinalityto '];'}} 30

31

PIM seviyesinde modelleme ile Java Card koduna dönüşümler Process, Install gibi temel Java Card metotları Küçük farklılıklar haricinde, Java Card kodunda bulunması gereken temel işlemler ile çalışan seviyede kod üretimi Kullanıcı tanımlı metotlar Metot imzalarının tümü Kullanıcı tarafından girilen koşulların dile özgü kullanımları Standart bir metot içinde bulunabilecek küçük kod blokları Sabit ve Değişken veri tipleri Tamamı Pin İşlemleri Temel işlemleri yerine getirecek metot ve parametrelerin üretimi 32

PIM seviyesinde modelleme ile Basic Card koduna dönüşümler Paket alış verişini sağlayacak Command prosedürleri Prosedür imzaları, aldığı parametreler, gövde kısmındaki koşul içeren kodlar ve geri dönüş değerleri Kullanıcı tanımlı metotlar (Subroutine ve Function) Sadece PSM seviyesinde Sabit ve Değişken veri tipleri ile sabitlerin tanımlandığı diğer proje dosyaları Tamamı 33

Geliştirmesi devam eden çalışmamızın içeriği: Üretilen kodun verimliliği ve doğruluk testleri Otomatik üretilen kod miktarının artırılmasına yönelik çalışmalar Bu sayede otomatik üretilen kod üzerinde en az seviyede değişiklik yapılması İleriye Dönük Düşünceler Farklı akıllı kart tiplerine destek Platform Bağımsız Model bu genişlemeye olanak verecek şekilde tasarlandı 34

Sorularınız? 35