Personal tools
You are here: Home Ürünler ve Hizmetler Yazılımlar Fabrikalarda Java Kullanımı
Document Actions

Fabrikalarda Java Kullanımı

 

Yakın zamana kadar sadece WWW uygulamalarında yer bulan Java programlama dili, yavaş ama emin adımlarla, sistem mühendisliğinde de kullanım buluyor. Java’nın platform bağımsızlığı, süreç denetimi için büyük bir üstünlük sağlıyor. İki dünya birleşmeye zorlanıyor - kurumsal bilgisayar dünyası ve endüstriyel kontrol ve otomasyon dünyası. Çoğunluğun düşüncesi büyük ortağın, veri işleme anlamında, bilgisayar dünyası olacağını düşünüyor ama tersi daha olası. Kontrol mühendisliği ve sibernetiğin zengin kavramları ile tümleşik usun gücü birleşince endüstriyel kontrol alanı bu birlikteliğin komuta merkezi olup, tepeden aşağıya planlamayı daha dağıtık bir sistemle değiştirebilir. Bilişim Teknolojileri (BT) değişiyor, bu değişim üretim şirketlerinin önüne, kurumsal kontrolün tasarım ve uygulanması alanında, yeni fırsatlar çıkarıyor. Veri işleme (ya da yeni adıyla Kurumsal BT), kontrol mühendisliğine göre çok daha genç bir disiplin. Güvenilirlik ve güvenlik, yazılım mühendisliğinin ana hedefi olmaya yeni başlamışken, kontrol mühendisliğinin sürekli olarak kalbinde yer aldılar. Tarihsel olarak, kontrol mühendisliği, üretim işlemleri ile birlikte gelişti - kontrol edemediğiniz bir yöntemle üretim yapamazsınız. Basınç, sıcaklık, akış, malzeme özellikleri, ve diğer değişkenler, güvenli ve güvenilir üretim için hayati kriterlerdir. Etkinlik ve en iyileme ancak bu gibi kriterler sağlandıktan sonra dikkate alınabilir. 1950’lerden önce, üretim güvenliği, elektrik, mekanik ve hidrolik kontrol sistemlerine dayalıydı. Genel-amaçlı ticari bilgisayarın kontrol için iyi bir araç olup olmadığı sorusunun cevabı, on yıllar boyunca, “Hayır.” oldu. Yıllar boyunca, kontrol mühendisleri, küçük gruplara yönelik, özelleşmiş, ve genelde pahalı sistemler tasarladılar. Bilgisayar sistemlerinin fabrika ortamında çalışmasının güç olması da buna eklenince, kurumsal bilgisayar dünyası ile kontrol mühendisliğinin yolları ayrılmış oldu.

 

Hem yazılımsal hem de donanımsal parçaları olan Java teknolojisi ile, ticari bilgisayar dünyası, endüstriyel kontrol uygulamalarının ihtiyaçlarını karşılayabilecek duruma gelmekte. Sun Microsystems tarafından tanıtılan Java teknolojisi, kurumsal birleşmenin ve endüstriyel kontrolün ihtiyaçlarını karşılayabilecek bir BT mimarisi sunmakta. Dolayısıyla, bütün iş ortamlarına - hem ofislere, hem de fabrikalara - bir bütün olarak hitap ediyor.

 

FFW Topoloji

 

 

Üç Parçalı Teknoloji

Java teknolojisinin ana elemanları, Java programlama dili, Java işletim ortamı ve Java temelli işlemcilerdir. Bunlar, Internet bütünleşmesinin yanı sıra platform bağımsızlığını da sağlamakta. Bu özellikler, Java’yı endüstriyel kontrol ve kontrol sistemleri geliştirme uygulamaları için güçlü bir platform haline getiriyor. Java, WWW üzerinden çalıştırılan uygulamalar geliştirmede kullanılabilen platformdan bağımsız bir programlama dilidir. Diğer nesne tabanlı programlama (Object Oriented Programming - OOP) yöntembilim-lerinin eksikliklerine sahip olmayan bir nesne tabanlı programlama yapısıdır. Java’yı yaratan ekip, C++ ile olan tecrübelerine dayanarak, sorun çıkartabilecek olan yapıları; işaretçileri (pointers), belleğe doğrudan erişimi, çoklu miras almayı (multiple inheritance), genişletilmiş yapıcıları (extended constructors) kaldırdılar. Ancak, dile başka hayati özellikler ekleyerek, bu yapıların kaldırılmasından kaynaklanan zayıf yönlerden kurtuldular. Java, istisna durumlarının ele alınışı (exception handling) yönünden daha güçlü, böylece, önemli ya da beklenmedik durumların ortaya çıkması halinde program akışını yönlendirmek kolaylaşıyor. Ayrıca, “çöplük-toplama” (garbage collection) adı verilen bir sistemi de otomatikleştirerek programcının işini kolaylaştırıyor. C ya da C++ ile program yazılırken, dinamik olarak yerleştirilen bellek, “free” ya da “delete” gibi bir komutla serbest bırakılmak zorundayken, Java’da çöplük toplayıcı bunu kendisi yapmaktadır.

 

Java ayrıca, çok parçalı programların çalıştırılması için daha iyi destek vermektedir. Büyük bir uygulamanın parçası olan küçük parçalar, birbirlerinden bağımsız olarak çalışabilmekte ve aynı anda birden fazla diğer parçacıkla haberleşebilmektedir. Java’nın ayrıca sağlam bir güvenlik modeli ve Web bağlantısı için mevcut desteği de diğer artıları. Ancak Java’nın gerçek zamanlı uygulamalar için bazı eksiklikleri de var.Java’nın evrensel uygulama alanı bulmasının anahtarı, Java Sanal Makinesi (Java Virtual Machine -JVM ) ve Java sınıfları ve uygulama programlama ara yüzleri (Application Programming Interface - API) olan iki yönlü mimarisidir. Sanal Makine, kullanıcı platformunda yer almakta ve Java hizmetçisi ile kullanıcının işletim sistemi arasında kalmaktadır. Sınıflar ve uygulama programlama ara yüzleri veri tabanı bağlanabilirliğinden güvenlik ve hizmetçi yönetimine uzanan bir çok işlev ve yetenek sunmakta ve uygulamalar ve Java platformu arasında durmaktadır. Bu elemanların çalışma biçimi, Java ile hazırlanan uygulamaların, diğer işlemci platformlarına kolaylıkla taşınabilmesine olanak sağlamaktadır. Java kaynak kodu öncelikle bir ara seviye olan Java Bayt Koduna (JBC) çevrilir. Bayt Kodu, her hangi bir platforma özel yöntemler içermez ve sadece Java’yı destekleyen bir platformda, Java Sanal Makinesi tarafından o platforma özgü bir şekilde çalıştırılır. Yani uygulamanın çalıştırılırken derlendiğini söylemek mümkündür. Bayt Kodları, bir Java Sanal Makinesinin bulunduğu her platformda çalışabilir. Sanal Makine, kullanıcı ara yüzü, dosya sistemi işlemleri, ağ kullanımı gibi bütün platforma bağımlı hizmetleri gizler. Bu özellikleri ile Java hem bir nesne tabanlı dil, hem de bir çalışma zamanı ortamı (run-time environment) olarak değerlendirilmelidir. Teknoloji mevcut müşteri/hizmetçi uygulamalarına göre bir çok üstünlük içeriyor. Java uygulamaları her hangi bir platformda çalışabilir; bu yazılım hazırlanmasını kolaylaştırıyor, ve sistemler yukarıdan aşağıya ya da aşağıdan yukarıya ölçeklenebilir; bu da sistem tasarımını her kuruluşun ihtiyacına göre yapabilmeyi sağlıyor. Java’nın bu özellikleri, heterojen bilgisayar sistemleri ve çok farklı platformların kullanıldığı fabrika ortamı için avantajlar sunuyor. Nesnelerden oluştuğu için var olan Java yazılımı yeni bir uygulama için kullanılabilir oluyor. Bu sadece işgücü ve zamandan tasarruf etmek dışında, endüstriyel uygulamaların gerektirdiği güvenlik ve güvenilirlik koşullarını da sağlıyor.

 

Sistemin Derinlerinde

Tümleşik kontrol sistemleri daha büyük bir sistemin özel amaçlı parçalarıdır. Bir çok açıdan programlanması en zor olan parçalardır çünkü hem durumları uygulama geliştiricinin önüne bir çok kısıtlama koyar hem de yüksek performans beklenir. Örnekler, yazıcılardaki mikro işlemciler, kamera ve oyuncaklardaki uygulamaya özel entegre devrelerdir. Tümleşik sistemler, çok çeşitli mikro işlemciler kullandıkları için , Java teknolojisinin sunduğu platformdan bağımsızlık çok kullanışlı olmaktadır. Ayrıca Java’nın bellek kullanımı yöntemi, düzeltilmesi çok zor olabilecek bazı sorunları önlemektedir. Ayrıca Java programları genellikle C++ programlarından daha az yer kaplamakta ve daha az bellek kullanmaktadır. BU da belleğin kısıtlı olduğu kontrol uygulamalarında bir avantajdır.

 

Tümleşik bir örnek olay

Cedra Rapids, Iowa’da bulunan Rockwell Collins Inc. ticari ve askeri hava taşıtları için uçuş gösterimi, oto pilot ve benzeri yönlendirme sistemleri sağlamaktadır. Bu tür ürünlerin elektronik alt sistemleri küçük ve hafif olmasının yanı sıra son derece güvenilir olmalıdır. Dolayısıyla, bu sistemler mikro işlemcilere dayalıdır. Firma, uzun zamandır nesne tabanlı teknolojileri kullanmaktadır. Yıllar boyunca askeri ve ticari havacılık projelerinde nesne tabanlı Ada dilini kullanmaktadır; böylece mühendisleri hem Ada dilinde uzmanlaşmış hem de Ada nesnelerinde oluşan büyük bir kütüphaneye sahip olmuşlardır. Java tanıtıldığında, mühendisleri, bu yeni teknolojinin kendi alanlarındaki sistem oluşturma yöntembilimindeki etkisini kavramış ve firma da ürünlerini Java temelli olarak hazırlamaya karar vermiştir. İlk yapılan şey, Ada’dan Java’ya çeviri yapabilecek bir derleyici için kontrat imzalayarak hazırdaki kütüphanelerini kullanabilir hale geldiler. Daha sonra da kendi ürettikleri mikro işlemcilerin çekirdeğini, Java teknolojisine göre değiştirerek, Java Bayt Kodlarını kendi komut takımı olarak çalıştırabilecek şekilde düzenlediler. Böylece denenmiş ve test edilmiş bir platformu yenilikler içeren bir platforma çevirmiş oldular. Bu yeniliklerin sonucu olarak, yazılım geliştirme hızlandı ve ürünlerini piyasaya daha çabuk sunabilir oldular. Ayrıca programları da artık daha çağdaş ve evrensel bir platforma hitap ediyordu. Rockwell Collins’in çalışmaları ayrıca JEM-1 mikro işlemcisinin ortaya çıkmasını sağladı. JEM-1, 50 MHz’de çalışan 0.5 m CMOS işlem teknolojisi ile üretilmiş bir işlemci. JEM-1, Java Bayt Kodlarını, kendi komut takımı olarak kullanıyor. Bellek kullanımı da bir yığın (stack) kullanımı yerine bir yığıt (heap) kullanımı üzerine temellendirilmiştir. Bu seçimdeki sebep, bir yığının boyutunun derleme zamanında (compile time) belirlenmesi, bir yığıtın boyutunun ise, çalışma zamanında belirlenmesidir ki bu Java’nın özelliklerine daha uygundur.Bir işlemciyi tamamlamak için, JEM-1 çekirdeği, bir kesme denetleyicisi (interrupt controller), iki programlanabilir zamanlayıcı, dışsal bir veri yolu için destek, güç yönetimi teknolojisi ve bir birleşik test işlemi grubu (Joint Test Action Group - JTAG) ara yüzü ile desteklenmiştir. Böylelikle JEM-1 gerçek zamanlı uygulamalar için gerekli performansı sağlayabilmektedir. Java programlama teknolojisi gibi, silikonun içindeki Java da gerçek endüstriyel kontrol sistemlerine doğru bir adım daha olarak değerlendirilmelidir.

 

Bir Firmanın Herşeyini Biraraya Getirmek

Kurumsal kontrol işlem kontrolünün daha büyük ölçekli durumu olarak görülebilir. Java’dan önce, ticari bilgisayar teknolojisi, bırakın günümüzde söz konusu olan kurumsal kontrollü, etkili işlem kontrolünü bile yapamayacak durumda olarak nitelendiriliyordu. İş işlemleri yeniden mühendisliğindeki (Business Process Re-Engineering) son gelişmeler de, sonuçta, sistem mühendislerinin ’60lar ve ’70lerdeki gelişmelerine dayanmaktadır. Stafford Beer’ın klasiği “Decision and Control” günümüzde, basıldığı 1966’dan daha geçerlidir. Bu fikirler, kurumsal kaynak planlama sistemi (Enterprise Resource Planning - ERP) kurmak isteyen her kesin dikkate alması gereken fikirlerdir. Java, günümüzde, Beer’ın fikirlerinin uygulanmasını sağlayabilir. İşletmelerdeki işlemlerin karmaşıklığının arkasındaki ana sebepler, verilebilecek tepkilerin ve davranışların çeşitliliğinde yatıyor. 25,000 kişi çalıştıran küresek bir şirketi düşünün. Her hangi bir ölçekte, bu şirket karmaşık davranış sergileyecektir. Peki o zaman, böyle bir kuruluşun kontrol sistemi hakkında ne diyebilirsiniz? Yine konusunda bir öncü olan İngiliz Sibernetisist Ross Ashby 1956 tarihli “Introduction to Sybernetics” kitabında “Ön Koşullu Çeşitlilik Yasası” nı (The Law of Requisite Variety) öne sürer. Ashby’nin yasasına göre, uygun düzenlemeler için, düzenleyicideki çeşitlilik sistemdeki çeşitliliğe eşit veya daha fazla olmalıdır. Daha anlaşılabilir olarak, karmaşık bir sistemi sadece daha karmaşık bir kontrol mekanizması ile kontrol edebilirsiniz. Aksi durumda, kontrol edilemeyen durumların olacağı kesindir. Ayrıca dikkate alınması gereken bir nokta kurumsal kaynak planlaması sisteminin (ERP) esnek olmayışının kurumsal boyutta da kısıtlamalar getirebileceğidir.

 

Kurumsal Kontrolün Bileşenleri

Tanım gereği, üretim kuruluşları, tasarım ve üretim yaparlar ve bunları işin birer işlevi olarak sunarak kar amacı güderler. Şu anda bu tür kuruluşlar belli başlı birkaç yazılım sistemini kullanmaktadırlar. Bunlar, kurumsal kaynak planlama (ERP), elektronik tasarım otomasyonu (Electronic Design Automation - EDA), bilgisayar destekli tasarım ve üretim (Computer Aided Design/Manufacturing, - CAD/CAM), ürün veri yönetimi (Product Data Management - PDM) , çeşitli veri tabanı ve veri ambarlama (Data Warehousing) uygulamaları, üretim işletme sistemleri (Manufacturing Execution Systems - MES) ve işlem kontrolü. Bütün bu yazılım uygulamaları büyük bilgisayar gücüne ihtiyaç duymaktadır. Ayrıca, eğer kuruluş etkili bir şekilde yönetilecekse, bütün bu uygulamaların birbirleri ile haberleşmeleri ve etkileşmeleri gerekmektedir. Çağdaş kuruluş kontrol sistemleri, fabrika kontrol sistemleri üzerine her zamankinden çok yük bindirmektedirler. Ve işlem kontrol katmanından veri almaktaki zayıflıkları da performanslarının neden bu kadar kötü olduğunu da açıklamaya yeterli olacaktır. İşlem kontrol ve üretim sistemlerinden gelen veriler, karar destek sistemlerine ulaşmayabilir. En basit olarak, bir ürünün teslimat tarihi konusunda sağlıklı bilgi elde edilmeyebilir. Kurumsal kontrol problemleri, kolay problemler değildir ve bilgisayar teknolojisinin ve özellikle yazılım geliştirmenin uygulanması için önemli bir zorluktur. Tipik bir üretim bilgi işlem ortamında, birbirleri ile birleşmelerinin zor olduğu kanıtlanmış değişik platformlar karma olarak kullanılmaktadır. Programlanabilir mantık denetleyicileri, ideal kontrol sistemi olmaktan çok uzaktırlar. Bir çok bilgi kaybolur, çünkü üretim hatlarından gelen veriler ile sonuçlara dair veriler (kar, kalite, vb. ) doğrudan ilişkilen-dirilemez. Müşteri/hizmetçi teknolojisi, engellerin bazılarını yıkmakla birlikte, farklı uygulamalar aynı veri tabanını paylaşsalar bile, bu uygulamaların kendi aralarında iyi bir alış veriş olacağı anlamına gelmek zorunda değildir. Bu sorunlar heterojen donanım ortamlarının bulunduğu durumlarda birleşir. Ama Java teknolojisi ile, bu sorunları da aşmak mümkün olabilir.

 

Çok Seviyeli Mimari

Java mimarisi, iki kısımdan oluşur. Birinci kısım, üretim ve kaynak planlama sistemlerinin olduğu seviyedir. İkinci kısım ise, planlama ve zamanlama gibi daha üst seviye kurumsal kontrollerden oluşur. Java programları, paketler arasında iletişimi sağlarlar. Bunların arasında uzaktan görme kontrolü, bilgi paketleme ve akıllı ajanlar yer almaktadır. İlk bakışta, Java’nın bir çok üretim sorununu daha yüksek geliştirici üretkenliği, bir-kere yaz her yerde çalıştır (Write Once Run Anywhere) kullanımı, kullanıcı idaresi için ek yük getirmemesi gibi avantajlarının kombinasyonlarıyla çözdüğü görülür. Java ağ sitemlerine hazır olduğu için, dağıtık uygulamalar basitleşmektedir. Ayrıca yerel veri tabanlarına bağlanabilirlik de Java ortamlarının temel bir özelliğidir. Ayrıca Java ile yazılım geliştirme daha hızlı olarak gerçekleştirileceği için, müşterilere sistemlerin sunulması hızlanacak bu da maliyeti azaltacaktır. Java, iki ayrı teknolojik dünyayı birbirine yakınlaştırmaktadır. Dağıtık bilgi işlem modelleri ile fabrika sistemlerini birleştirerek bir köprü görevi görmektedir. Internet bağlantısı desteği sayesinde, bütün üreticilerin birbirleriyle haberleşmesine olanak sağlamaktadır.
Akıllı ajanlara gelince, omlar çeşitli işlevler için hazırlanmış nesne tabanlı kod parçacıklarıdır. İster yazılım isterse donanımsal olarak uygulanabilirler ve kontrol sistemlerine dağıtık us (Distributed Intelligence) desteği katarlar. Java nesneleri, kuruluş kontrolünün her aşamasında akıllı ajanlar eklenmesini sağlayabilir. Bu Java’nın hazırdaki olay modeli ile yapılır. Web erişimi ve taşınabilirlik, akıllı ajanların daha esnek olabilmelerini ve daha çok ve çeşitli müşterilerin ihtiyaçlarına cevap verebilmelerini sağlar. Son 30 yılın sistem mühendisleri, teknikleri biliyorlardı ancak gerekli işlem gücüne sahip değillerdi. Günümüzde gereken işlem gücü var. Ancak BT’nin tek başına çözüm olmadığını unutmamak gerekli. Şirketimizin daha önce yapmış olduğu üretim izleme sistemleri ve depo otomasyonu projelerinden elde ettiği deneyimlere dayanarak geliştirdiği Factory Framework mimarisi aşağıda detaylı olarak anlatılmaktadır. Factory Framework, dağıtık yapıda değişik işletim sistemleri ile çalışan donanımların belli bir teknoloji alt yapısı kullanılarak bir ağ modelinde beraber çalışmaları ve ortak bir sunucu ile veri tabanına ulaşmayı hedeflemektedir. Yapı tamamen 3 katmanlı mimari de çalışmakta olup client donanımların sadece belli iş kurallarını ve kullanıcı ön yüzünü çalıştırmasını sağlamakta olup, tcp-ip network socket haberleşmesi ile sistemde bulunan bir uygulama sunucusu (application server) ile konuşmalarını ve ana iş yükünün ve iş kuralllarının bu uygulama sunucusunda durmasını sağlamaktadır. Client donanımlar tcpip socket haberleşmesi ile uygulama sunucusunun ip sine belli bir port üzerinden ulaşmakta, uygulama sunucusu tcpip listener mantığı ile ilgili portu dinlemektedir. Client donanımlar ile uygulama sunucusu arasındaki veri akışı tamamen XML standartları kullanılarak yapılmaktadır. XML Tag leri içerisinde client donanımlardan gelen istekler (request) uygulama sunucusu tarafından alınarak 3ncü katman olan veri tabanına iletilmektedir. Veri tabanı üzerinde yazılan stored procedure ler ile veri tabanı üzerinde gerekli işlemler yapılmakta, daha sonra veri tabanından gelen bilgiye göre sonuçlar client donanımlara yine tcpip socket haberleşmesi ile aynı port üzerinden XML ile gönderilmektedir. Uygulama sunucusu aynı anda birden fazla client a hizmet vereceği için her bir client için server üzerinde bir thread açılmakta ve her bir thread birbirinden bağımsız olarak anında işlemlerini gerçekleştirmektedir.

 

Factory Framework de kullanılan yazılım mimarisi (n-tier) ile iş yapma mantığı kullanıcı (Client) programlarından çıkarılmıştır. Bu sebeple istemci, ister kurumsal olsun ister Internet erişim ve/veya mobil iletişim alt yapısı üzerindeki bir kullanıcı olsun fark etmeyecektir.


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: