WF Giriş


Windows Workflow Foundation Nedir ?

Windows Workflow Foundation, Windows platformuna gelen en anlamlı ve tabi ki yararlı parçalardan birisidir. Aslında biz farkında olsak ta, olmasak ta, iş akışını hayatımızın her anında kullanıyoruz. Alışveriş yaparken den tutun da,  geliştireceğimiz projenin bütün altyapısı ve kodlamasına kadar.  Bütün projelerimizde aslında bir iş akışı mevcuttur, yapmamız gerekeni nasıl ve ne zaman yapacağımız, hangi bölümü tamamladıktan sonra, nereye geçeceğimiz bunların hepsini aslında biz otomatiğe bağlamış şekilde yapıyoruz. Hayatımızın her anına, o kadar çok işlemiş durumdadır ki, bunun farkına bile varmadan hayatımızı sürdürüyoruz.

Bütün bu akışın içerisinde, aslında Workflow’un görevi sorunsuz ilerlemek ve karşımıza çıkacak sorunları mümkün olan en kısa zaman da çözümleyip, en kısa ve kesin şekilde çözmekten ibarettir. Yazılım Mühendisleri, Proje Yöneticileri veya Analistler, çok büyük ölçekli projelerden orta ölçekli işlere kadar,  projenin tamamının ölçeklendirilmesini Windows workflow foundation teknolojisini kullanarak gerçekleştirebilirler.

Biraz daha mesleki olarak neler yapabildiğimizden bahsetmek istiyorum.  Gerçek Dünyada, yani zorlu iş hayatımızda birçok problemin çözümünde Windows Workflow dan yararlanmak mümkündür. Peki nasıl ? Temel olarak basitçe düşünmek gerekirse, problemin çözümünde ama bence en önemlisi amaca sorunsuzca ulaşmakta izlenmesi gereken yol dur.

Öncelikle bir sorundan bahsedelim, tabi ki ilk işimiz sorunun ne olduğunu, gerçekten çok iyi anlamak ve analizini çıkarmak ile başlar. Bu adımdan sonra, bu karşılaşılan sorunu en kısa ve hızlı şekilde nasıl çözebilirim den yola çıkarak, sorunu mantıklı bir şekilde parçalamak ve küçük parçalar haline getirip, ele alabilmek, yönetim açısından ve tabi ki bizim için önemlidir. Bunu başarabilirsek, gerçekten işimiz çok daha kolay olabilir. Bu ufak parçaları öncelik sırasına göre sıraya sokmakta işin işleyişi için önemlidir. Bu işlemlerin sonucunda, elimizde sorunumuzu çözecek bir süreç ve izlememiz gereken yol ve acil olarak çözülmesi gereken sorunlar ortaya çıkmış demektir.

Bu iş akışı “Workflow” sayesinde, yaşadığımız sorunların çözümü veya projemizin daha fazla geliştirilmesi, son derece kolay olacaktır. Bütün izlenmesi gereken yollar ve adımlar belli olduğu için, önümüzü, önceliğimizi görerek, işimizi çok daha hızlı devam ettirebiliriz demektir.

İş akışında, adımlar,  kurallar  ve kararlar vardır. Bazı adımların arasında geçiş işlemi yaparken bazı koşullar söz konusu olabilirler.

Birçok çevrede iş akışı bilinçsizce sürüp gitmektedir. Yazımın başlarında da söylediğim gibi asında hayatımız her anında bu iş akışı sürüp gidiyor ve bazı durumlarda bu sürecin dışarısına çıkıldımı ne yapacağımızı bile şaşırabiliyoruz. Artık bir kaç örnek vermenin zamanı geldi galiba.

1.      Workflow Örneği:  Para çekmeniz gerekiyor ve bunun için bir banka ya da ATM bulmamız gerekiyor. Banka ya da ATM’in bulunması durumda;

 

·         Öncelikle Bankamatik kartınızı çıkartıp, ATM’nin kart bölümüne sokmalısınız,

·         Daha sonra banka size şifrenizi soracaktır ve şifrenizi girmelisiniz,

·         Eğer şifreniz doğrulanırsa yapmak istediğiniz işlemi ATM’e belirtmeniz gerekir.

·         Para çekme seçeneğini seçtikten sonra, ne kadar para çekmek istediğinizi de belirtmeniz gerekir,

·         Eğer istediğiniz miktar ATM tarafından ödenebilecek bir miktarsa, sizin işleminizi gerçekleştirir.

·         Eğer değilse size başka bir seçenek sunar ve siz de en son kararınızı ATM‘e ilettikten sonra paranızı alırsınız ,

·         Son olarak ATM kartınızı da ATM den aldıktan sonra iş akışınız sonlanmış olur.

 

Tabi sizin bu işlemleri yapabilmeniz için, öncelikle ATM’in çalışıyor olması gerekir. Ve yapacağınız işleme göre de, sizin ihtiyacınızı karşılıyor olmalıdır. Yoksa farklı bir ATM bulup işleminizi orada denemeniz gerekir. Bu örnekte iş akışı, ATM ile başlar, talep bankaya iletilir ve son olarak isteğiniz karşılanıp kartımızı geri iade aldıktan sonra iş akışımız son bulur.

 

2.      Workflow Örneği; Yaz geldi ve artık tatile çıkmak istiyorsunuz, bunun içinde personel müdürünüzden izin almanız gerekiyor, bu durumda izlenmesi gereken durum;

 

·         İlk olarak izin talebinizi personel müdürünüze iletmeniz gerekir

·         Daha sonra personel müdürünüz bunu değerlendirir.

·         İş yerinde ki konumuz, yerinize bakabilecek personel ve iş yoğunluğu gibi faktörleri değerlendirir.

·         Personel müdürü sizin izne çıkmanızda her hangi bir sakınca görmez ise size tatil yapmanız için izin verir.

·         Bu bilgiyi sisinle paylaştıktan sonra süreç tamamlanır.

 

“Eğer bir aksaklık olacağı düşünülürse ya da buna benzer bir durum ile karşılaşılırsa, tatil planlarınız biraz ertelenmesi gerekir ve o dönemdeki faktörler tekrar incelenerek, aynı süreç tekrar başlar.”

 

Hep olumlu akışlardan bahsettik biraz da olumsuz olalım.

3.      Workflow Örneği; Evlilik yıl dönümüz ve eşinize hediye almalısınız, muhasebe müdürünüzden avans talep edip eşinize güzel bir hediye almayı planlıyorsunuz;

 

·         Yine ilk olarak bunu talep etmeniz gerekiyor, muhasebe müdürünüze durumu iletiyorsunuz,

·         Muhasebe müdürünüz, kasasını ve ödemelerini kontrol ederek, sizin talebinizi değerlendirir,

·         Birçok ödeme olduğu için size avans veremeyeceğini size bildirir. Ve iş akışı son bulur.

En son talep size bildirildiğinde akış aslında biter ama sadece muhasebe müdürü ile olan bölüm biter. Eşinize evlilik yıl dönümüzde hediye almak zorundaysanız sürecin bir şekilde çözüm yollarını aramalısınız. Örnek olarak arkadaşlarınızdan ya da ailenizden borç para isteyebilirsiniz ve ya daha önce borç verdiğiniz birisinden paranızı talep edebilirsiniz vs...

Yukarıda verdiğim üç örnekte, bizim hayatımız içerisinden verilen örneklerdi. Workflow ile daha yeni tanıştığımızdan ve kavramaya çalıştığımızdan yola çıkarak, sürekli yaptığımız ya da en az bir kaç kez yaşadığımız örneklerden yola çıkmak daha iyi olur diye düşündüm. Aslında bu örnekleri daha basite indirgeyen anlatımlarda mevcut, Pizza siparişinden tutunda, pantolon almaya kadar verilmiş bir çok örnek var. Sizlerde kendiniz için çok daha basit örnekler ile bu adımları düşüp hatta kalem ve kağıt ile bu adımları çizerek biraz daha kafanızda netleştirebilirsiniz.

Eskiden Algoritmada FlowChart’lar vardı, görsel olarak, sabit bazı şekillerle İF – ELSE bloklarını ya da Input / Output gibi işlemleri grafiksel olarak tasarlayıp, birlikte çalıştığımız arkadaşlar ile daha iyi anlaşmamızı sağlardı. Hala direk olarak FlowChart şemasını  kullanan var mı bilmiyorum ama bir ekip halinde çalışıyorsanız, sizin izleyeceğiniz yolu diğer takım arkadaşlarınız grafiksel olarak görerek çok daha kolay anlayabilirler. Biz developer’lar bu tür grafiksel arayüz sunan bazı yazılımlar kullanıyoruz. Projemizi görsel olarak tasarlamak aslında çok önemlidir. İster ekip olarak çalışın, ister bireysel olarak, eğer bir yerde yanlış yaptıysanız bunu direk olarak görebilme imkanını size sunar. Daha sonradan bu proje ile ilgili bir değişiklik ya da geliştirme söz konusu olduğunda ise direk olarak grafiksel arayüz’e bakarak ne yaptığınızı çok kolay görebilir ve kod geliştirmeye devam edebilirsiniz. Bu tür yazılımların genel amacı, çok fazla iş akışının, çoğunlukla birden fazla bilgisayarın olduğu sistemlerde kurulması ve kullanılabilmesidir. Bazen tek bir bilgisayar içinde kullanılabilmektedir. 

 Yukarıdaki örnekler ve adımlar  ışığında bir iş akış modeli hazırlamamızın çok kolay olabileceğini zannediyorum. Bu modeli oluştururken aşağıdaki kavramlarla çalışmak gerekir;

·         Aktiviteler

·         Giren ve Çıkan Veriler (Input/Output)

·         Görsel Şemalar

·         Kurallar

·         Politikalar (Policies)

·         Kişiler

·         Yordamlar

·         Görevler

·         Adımlar

·         Organizasyonlar

Yukarıda ki kavramlar ve şu ana kadar anlatılanlar ile Microsoft acaba bize neler kattı ? Windows Workflow Foundation aslında .Net ile geliştirilen tek bir uygulamayı ve onun içerisindeki tek bir iş alanını ilgilendiriyor veya bu amaçlanıyor diyebiliriz. Biraz öncede belirttiğim gibi sadece .Net uygulamalarını kapsamaktadır. Bu yazdıklarımı okuduktan sonra Windows Workflow Foundation ile yapacaklarımız çok sınırlıymış diye düşünebilirsiniz ama bu şekilde bir düşünce kesinlikle yanlıştır. Özellikle Web Services “Web Servisleri”, Windows Communication Foundation “WCF” ve ya Service Oriented Architecture “SOA” modelleri sayesinde, Distributed Application “Dağıtık Mimari Uygulamaları” ve yine farklı platformlarda çalışan uygulamalar ile entegre olup birlikte çalışması sayesinde, ciddi bir genişleme söz konusu olmaktadır. Windows XP ve sonrası masaüstü işletim sistemlerinde, Windows Server 2003 ve üzeri server işletim sistemlerinde sorunsuzca desteklenmektedir. Ancak .Net Framework 3.0 tabiki kurulu olması gerekir. İlerleyen konularda bunlar ile ilgili detaylı açıklamalar yapıp örnekleri inceleyebileceksiniz.

Windows Workflow Foundation platformu sayesinde bizim .Net Framework 2.0 ile hayatımıza çok daha kapsamlı bir şekilde giren Drag and Drop ”Sürükle ve Bırak” mantığı ile, iş akışımızı görsel olarak tasarlayıp kodlama yapmamız mümkün. Tabii ki bu iş akışını tasarladıktan ve kodunu yazdıktan sonra bir uygulama ile bu iş akışı ele alınmalıdır. Bu uygulama iş akışını barındırma görevini üstlenir “host eder”. Bir uygulama sadece bir iş akışını ele almaz, eğer isterseniz birden fazla iş akışını, tek bir uygulama ile barındırıp kullanabilirsiniz. Windows Workflow Foundation’un bazı faydalarından bahsetmek istiyorum;

·         İş akışının güncel durumları kayıt edebilme yeteneğinin olması ve aynı zaman da bunu başka bir zaman diliminde yeniden yüklenilebilir olması çok önemlidir. Windows Workflow Foundation bu oluşabilecek farklılıkları ortadan kaldırıyor diyebiliriz.

·         Sıralı iş akışı “Sequential Workflow” ile, çoğunlukla insan faktörünün az olduğu, sistemin etkileşim içerisinde olduğu durumlardır. Bu gibi durumlarda sistem devrede olacağından dolayı sistemin gideceği bütün akış, düzgün ve sıralı bir şekilde tasarlanmıştır.

·         Windows Workflow Foundation, ihtiyacımız olan farklı tipteki Aktivitelerin izlenmesine ve denetlenmesine imkan tanır.

·         Sistemin değil de insan faktörünün etkileşiminin olduğu “State Machine” desteğini de, yine Windows Workflow Foundation sunmaktadır. Bu durumda genellikle aktiviteler arası geçişlerde, kullanıcılardan bazı olayların tetiklenmesi beklenmektedir. Bu gerçekleşen olaylara göre adımlar arasında geçişler gerçekleşir.

 

Windows Workflow Foundation, iş akışlarını göz önünde bulundurarak geliştirilen bir programlama modeli sunar.







Blog Posts' Cloud