Pages

Friday, October 22, 2010

Scheduling Servis Nedir?

Windows Workflow Foundation ,uygulama duzeyinde bulunan 'Workflow'(CPU)'da kullanmış olduğu işlevsel durumdaki tehtitlerinin kotrol edilmesini çalışmanız esnasında size sağlar durumdadır.Bu nedenle eyer 'Workflow' işleme tabi tutulur ve sonuçları yeterli seviyede anlam içermiyor durumdaysa,bu durumda sistemde bulunan 'Scheduling' servise başvurarak sistem hata ve tehtitlerini kotrol edebiliriz.


Normalde varsayılan düzeyde ,Windows Workflow Foundation runtime,herbir 'Workflow' örneyi için yeni bir düzeyde tehtit içeren 'DefaultWorkflowSchedulerServer' kullanır durumdadır.Bu sistem işleyişini tehtit eden durum,host(konukçul) uygulamaların kendi işlevlerini gerçekleştirmesi sırasında bloke duruma gelmemesi için eşzamanlı olarak 'Common Language Runtime Tread pool(CLR)' aracılırla belirli düzeyde işleme tabi tutuluyor.


İşterseniz 'Workflow' ,'ASP.BET Wep uygulaması veya Wep service' gibi server temelli (host) uygulamalara (host) edebiliriz.Bu (host) uygulamalar sistem işleyişinde herhangi bir tehtit örneyi ile karşılaşırsa bulunan tehtidi dorudan 'Workflow' örneyindeki (CLR) ile işleme tabi tutar.Ve bu sayade hedef örnek veya ornekler, işlem düzeyindeki uygulama ve 'Workflow' arasında senkronize yapılarak 'Workflows'da bulunan (CLR) sayesinde en şekilde kullanılır hale getirilir.Ve bu kullanılabilir hale getirilen örnekleri yeniden kullanılması için 'DefaultWorkflowSchedulerServer' yerine 'ManualWorkflowSchedulerServer' kullanarak sisteme geri yükleriz.


Sistemde özel şekilde tehtit örneyi içeriyorsa,'SchedulerService' sınıflarından ödünç aldığımız parçalarla özel bir 'scheduling services' oluşturabiliriz.Fakat yinede bu özelşekilde yapmak istediğimiz 'scheduling services' çoğu uygulamalarda yapılabilir durumda deyildir.

Thursday, October 21, 2010

Tracking Servis Nedir?

Herhangingi bir 'Workflow' geliştirip ve akabinde teste tabi tutarsak,'Workflow' kurum aşamasını etkili ve hızlı şekilde yapmak için, oluşturmuş olduğunuz 'Workflow' işlevsel boyutta en iyi düzeye getirmeyi deneyeceksiniz.Budan dolayı ne gibi aktivitelerin işleve tabi olacak ve bu işlevlerin gerçekleşme zamanlarını kayıt altına almak isteyeceğiniz aşikar.Ve bir uygulamaya 'Workflow' konuçlandırdığınızda,tipik bir kullanıcının ,'Workflow'un hangi bölümlerini sık ve hangi bölümlerini seyrek düzeyde işleme tabi tutmaktadır? Gibi,'Workflow' kullanarak yapmış olduğu bu aktiviteleri nasıl çalıştırdığını bilmek isteyebilirsiniz.


Bu noktada yukarda bahsetmiş olduğum 'Workflow' bölümleri hangi sıklıkta ne derecede kullanılmış? Gibi soruların bilgisini bir araya getirmek için işleme tabi olan aktiviteleri kayıt altına alan, ki bu durum 'Workflow' örneklerinin herbir örneyi işlemde kullanıldığında gerçekleşir,'Windows Workflow Foundation Tracking Service' kullanabilirsiniz.


'Windows Workflow Foundation Tracking Service ,Herhangi bir 'SQL server veritabanında 'Tracking' bilgisini depolamak için kullanılabilen 'SqlTrackingService' sınıfı bulundurur durumdadır.Şayet 'tracking' bilgisini başka bir alanda konumlandırmak isterseniz,'TrackingServices'servislerden birkaç işlevi devralarak kendinize özel bir 'tracking' servis oluşturabilirsiniz.

Wednesday, October 20, 2010

'Transaction' Servis Nedir?

Bir çok programlama teknolojisi, verilerin tutarlı şekilde seyrini devam etirip ettirmediğini ve karşılaşılan hataların veya umulmadık olayların ortaya çıkıp çıkmadığını belirlemek için 'transactions' kullanır.Ve 'Windows Workflow Foudtion' yapmış oldunu 'Workflows'da 'transactions' tanımlamnıza imkan tanıyacak.


Örneyin para ödeme sistemlerini(ATM)gözönünde bulundurursak,bir müşterinin kredi kart borç durumunu,ödenmiş olan borçları ve tüm bular hakkında gerekli bilgiyi(kartın durumu hakkında) e-mail ile gönderen bir 'Workflow' oluşturabiliriz.Bir müşteri kredi kart borcunu ödemek isterken işlev halinde olan 'Workflow' diagramında herhangi bir hatanın oluşması,müşterinin ödemek istediği borcu ödemiş olarak göstermediği gibi müşteri kredi kartında ilave borçların çıkmasınada vesile olabilir.Ve hatta 'Workflow' örneyinin bağlı olduğu veri tabanı yeniden başlayacak olursa da aynı durumun gerçekleşebileceğini düşünebiliriz.


İşte bu gibi senaryoların ortaya çıkmasını engellemek için 'TransactionContext activity' kullanarak 'Workflows' içine 'Transaction' oşuşturabiliriz. Ve 'TransactionContext' aktivitesinde bulunan birçok aktiviteyi 'Workflow' uygulamasına ekleyebiliriz.Şayet sistemin işlevinde henhangi bir başarısızlı ortaya çıkarsa,'Workflow' eklenen başlangıç durumunda ki'Transaction' otomatikmen diskalifiye edilip,müşterinin sistem üzerinde gerçekleştirmiş olduğu işlemler ilk başlangıç durumun getirilir.
Örneyin bu durum bir müşterinin herhangi bir kart borcunu ödemek istemesi sırasında ortaya çıkabilir.Bu sırada sistem işlevini gerçekleştiren 'Workflow' diagramı bir nedenden ötürü yeniden başlasa da müşterinin sistemde ki varolan verilerinde herhangi bir kaybın olması söz konusu olamaz.Daha açık şekilde belirtmek gerekirse, müşteri tüm işlemlerini gerçekleştirirken,her hangi bir nedenden dolayı sistemin yeniden başlaması 'Wokflow' da bulunan 'Transaction' olası bir veri kaybını engeller.



Tuesday, October 19, 2010

Persistence Servis Nedir?



'Windows Workflow Foundation' ile biçimlendirebileceğiniz herhangi bir iş projesi herhangi bir hatadan dolayı günler veya aylar sürebilir.Örneyin ,bir gelişimcinin çözüme ulaşmadan önce ,uzun zaman diliminde bir kaç işlemi hatalı şekilde takip etmiş olduğu farkına varıp, ortaya çıkarmış olduğu bir problemi, arka plana atması iş projesinin seyrini uzatabilir.Bu gibi zaman dilimlerinde 'Workflow' işlevseliğini kullanmak bence sorunun çözümüne yarar sağlamz.Başka bir örnek verecek olursak;Sistemi iş ortamında test edici görevini üstlenmiş bir kişinin iş günü sonunda bir problemin olduğunu farketmesi olarak tabir edebilriz.Ve ertesi sabah gelişimci kardeşimizin problemi tesbit edene kadar,hedef örnek bir geceliğine (inactive) durumunda kalacak bu sistemde geri dönülmez hatalara yol açabilir.



Host(üzerinde çalışilan program) uygulama projelerinde,uzun dönem çalışılan veya işe yaramaz bir 'Workflow' örneyini muhafaza etmek mantıklı gibi görünmüyor.Bence birçok gereksiz 'Workflow' örneyini host durumdaki uygulamada muhafaza etmek bellek israfına yol açmaktan başka bir işe yaramaz.Üstelik host uygulama projesi,yapılmak istenen 'Workflow' örneyinin bitmeden uygulamayı yeniden başlatabilir.Ve host projesi yeniden başladığında,'Workflow' örnekleri doğal olarak durur.Bu 'Workflows' dizaynı kapsamında istenmeyen birşeydir.



Bu problemin çözümü, yapmış oldumuz 'Workflow' uygulamalarını kaydetmek için Windows Workflow Foundation'da bulunan 'Persistence servisleri kullanmamız gerektiğidir.Böylece bir 'Workflow' örneyinin 'Workflow runtime' ile ön belleğe kaydının alınması gerektiğinde ,'Workflow', dorudan 'Workflow Runtime' belleginden yüklenmiycekdir.Daha ziyade daha sonra 'Workflow' aktive edilmek istendiğinde 'Persisten servis' kullanılarak 'Workflow runtime' ön belleğine 'Workflow' kayıt kayıt edilebilir.



'Window Workflow Foundation,SQL Server veri tabanına Workflow örneklerini kayıt edebilen (SQLWorkflowPersistenceServisclss) bulundurur.Yinede 'Workflows' başka bir bölgeye kaydetmek niyetinde olabiliriz,bu durumda kendimiz özel 'persistence service' oluşturmamız mümkün.





Monday, October 18, 2010

Windows Workflow Foundation Altyapısı

WİNDOWS WORKFLOW FOUNDATİON ALTYAPISININ İNCELENMESİ

'Workflow'un altyapısal temelinde (runtime) servisler var.Ve ayreten bu servislere, diagramın gelecekte ki düzeyini temsil etmesi açısından ve (runtime) davranışını kotrol etmesi için 'WF' (runtime) ekleyebiliriz.(Runtime)mı açıklayacak olursak,genel tabiriyle bir çok aktif belirlemelerin kullanıdığı genel durumda ki işlevselikleri sağlayan (activity framework) olarak tabir edebiliriz.Framework ise birtür kendi bünyesinde bulunan aktivitelerin toplam miktarı olarak nitelendirebiliriz.Bunun yanıda 'Workflow'larda aktiviteleri bir araya getirebilir ve 'Visual Studio' kullanarak özel aktiviteler oluşturabiliriz.Şimdi sizlere 'WF' alt yapısını açıklamamın yanında bu alt yapının temelinde bulunan runtime servislerden sözedeceğim.İlk bu alt yapıda bulunan runtime servislerin kısa açıklamalarıyla başlamak istiyorum.Daha sonraki makalelerimde size bu servisleri kapsamlı şekilde anlatacağım.


Activites= Windows Workflow Foundation,e-mail göndermek, hataları yakalamak,kot kurmak veya diyer işlevleri yerine getirmek için kullanabileceğimiz birçok aktiviteyi beraberinde sağlıyor.


Activity Framework=Activity framework, validation(geçerlilik),fault handling( işlev bozukluklarını yakalama) ve derlemeler gibi bir çok aktiviteyi kullanan genel düzeyde bir işlevselik sağlar.


Workflow Runtime= Workflow runtime ,konukçul uygulamada workflow örneklerini işleve koyan bileşendir.


Persistent Services=Persisten servis,bir 'workflow' uzun mütdet çalışma koşularına maruz kalması durumunda,fazlalık durumunda ki 'workflow' örneğini veri deposuna kaydetmek için kullanılabilir.


Transaction Services=İletişim ve diyer başka düzeydeki başarısızlık olaylarında veri tutarlılığınızı kati kılmak için bu servisi kullanabilirsiniz.


Tracking Services=Her bir 'Workflow' örneğinde hangi aktiviteler işleve konacakğının kaydının tutulması için kullanılır.Hatta her bir aktivitenin ne zaman işleve konacağının kaydının tutulabildiği yerdir.Ve 'Workflow' ait sorun ve hata bulmak için (Tracking services) kullanabiliriz.


Scheduling Services=Bu servis ,bir 'Workflow' runtime, 'Workflow' örnekleri için iş parçalarını nasıl oluşturduğunu kontrol etmek için kullanılabilir.









Sunday, October 17, 2010

Diyer Microsofy Server Ürünlerinde Windows Workflow Foundation

Microsoft,diyer yeni gelen server ürünlerinde veya bilinen server ürünlerinin yeni versiyonlarında iş projelerini biçimlendirmek için 'Workflow Foundation'nu kullanır.Aşağıda belirteceğim başlıklar bu ürünlerin 'Workflow' nasıl kullandığını tanımlıyor.


1-Speech Server= Microsoft Speech Server, basit sistemlerde Web teknolojileri,konuşma işlevinin düzenlendiği proje servisi ve telefon işlevini düzenler. Ve ayrıca telefon(yanlız sesli) ve çok doruklu(ses ve görsel) işlevleri geliştirmek ve dağıtımını gerçekleştirmek için Microsoft Speech Server kullanabiliriz.Speech Server ,uygulamalara, konuşma arayüzü oluşturmak için konuşma kabulü ve konuşma sentezi uygular.

Microsoft Speech Serverda,uygulama ve kullanıcı arasında iletişimi oluşturmak için 'Workflow' aracılıyla bir uygulamaya sesli arayüz yapılandırabiliriz.
Speech Server 'Workflow' aktivitelerinin geniş bir miktarını kapsar,örneyin kullanıcılara bağlı olarak bir mesajın okunmasını sağlayan'Statement Activity',sesli mesajların kaydedilmesini sağlayan 'RecordMessageActivity ve kullanıcıdan sesli yanıtları gelde eden 'QuestionAnswerActivity.


2-BizTalk Server= Microsoft BizTalk Server, iş projelerini otomatikleştirme ve özeleştirmeyi şirketlere sağlar.Ve bizTalk mesajlaşma ,sistemlerin geniş miktarıyla iletişime geçmeyi imkan tanır.BizTalk orchestration ise,basit bir iş projesinde bir çok sistemi organize edilmesini sağlar.

BizTalk 2006,büyük çaptaki iş projelerinde uygulama ve Wep servislerini eş düzeyde çalıştırmak için 'XLANG' kullanır.Ve burada'XLANG' ,orchestration işlevini kapsayan adımları tanımlayan bir 'XML' dildir.


BizTalkın, daha ileri versiyonu 'orchetration' için WF kullanır.Ve'WF' tam kullanıcıları organize ediyor olması yanında bilgisayar sistemlerinide organize etmesi 'orchestration'ların 'WF'kullanmalarının nedenini açıklar.XLANG yerine,'BizTalk'kın daha ileriki versiyonları 'Workflow'ları tanımlamak için 'XAML' kullanacak gibi görünüyor.


3-System Center Server=System Center Server ,IT profesyonellerine yönetim düzeyinde yardım sağlamak için araçlar ve bilgi sağlamayı hedefleyen, sistem yönetim ürünleri ve solusyonlarının Microsoft ailesi diyebiliriz.Ve hatta IT altyapınızda ki System merkezini bazı görevlerin kotrolünün yapılması için kullanabiliriz:

.Operation management(operasyon yönetimi)
.Change management(yönetici değişikliği)
.Configuration management(yapılandırma yönetimi)
.Asset management(kazanç yönetimi)
.Problem management(problem yönetimi)


'Workflow'ları kullanarak yönetimsel işlevselliğine sahip bu sistemlerin hepsini organize edebiliriz.System Center Server 'Workflow engine' olarak 'WF' kullanır.Ve System Center Server ,Microsoft Operational Framework(MOF) standartlarına bağlı olan her bir yönetimsel düzeydeki görev için tanımlanmış olan 'Workflow'lardan oluşur.Sistem yönetiminizi kotrol etmek için 'Workflow'ları kullanabilir, özelleştirebilir veya kendinize ait olan 'Workflow'lar geliştirebilirsiniz.


4-İdentity İntegration Server=Microsoft İntegration Server(MIIS),organizasyonlar için çok boyutlu dizinlerle kimlik bilgisini kapsayan ve depolayan bir merkezi servistir.'MIIS', kullanıcılar,uygulamalar ve network kaynakları hakında bilinen bütün kimlik içeriklerinin kapsamlı bir incelemesini organizasyonlara sağlar.

İdentity management ,çoğu kez koplex düzeyde iş projelerine içerlenmiş durumdadır.Örneyin ortağı olduğu şirketle çalışan bir organizasyonu gözönünde bulundurabiliriz.Bu organizasyon ,her iki şirkette de müdür onayına ihtiyaç duyan çalışma ortamında ki kullanıcılar için kimlikler oluşturması gerekir.Burada 'Workflow' bu onay projesinin yönetimini gerçekleştirmek için ideal düzeydedir.Bu nedenle 'MIIS'in gelecekteki versiyonu 'WF' kapsayacak diyebiliriz.

Tuesday, October 12, 2010

Windows Workflow Foundation ve SharePoint ürünleri ve teknolojileri

Microsoft SharePoint ürünleri ve teknolojileri organizasyonlar,müşteri ve iş ortaklarıyla iş birliği düzeyinde çalışmalar yapmaktadır.Microsoft Windows SharePoint ve Microsoft Office SharePoint Portal server'ın bir araya getirilen iş birliği kapsamında ki belirlemerini kullanarak,organizasyonda ki kullanıcılar basit şekilde iş birliği kapsamında kullandıkları wep-sitelerini olüşturabilir,yönetebilir ve ayrıca yapılandırabilirler ve organizasyonların ve diyer işbirlikçilerinin bu wep-sitesine ulaşabilirliğine imkan tanırlar.SharePoint ürünleri ve 2007 teknolojileri kullanıcılarının organizasyonlar arasında işbirliği oluşumunu organize etmek için 'WF' kullanacaktır.Ayrıca'Workflow'ları kullanabileceğimiz üç ayrı teknolojinin varlığı sözkonusu ve bunlar:


1-Yerleşi düzende(built-in) Workflow kullanımı:

Windows SharePoint Servisler birtakim genel düzeyde bazı basit oranda Workflowları kapsamaktadır.Örneyin dökümantasyon onayı için gerekli olan Workflowlar.

Bu 'Workflow'ları kullanmak için ilk Windows SharePoint servisinden basit derecedeki Workflow belirlemelerini aktive etmeniz gerekir.Daha sonra kullanıcılar listeden bu belirlemeleri seçerek ve bu belirlemelerin alanlarını ayarlayarak kendi timleri ve işbirliği içinde oldukları sitelerde ki basit düzeyde 'Workflow'ları bunlara ilişkilendirebilirler.


2-SharePoint designer kullanımı:

Yerleşik düzende olan 'Workflow'lar SharePoint sitesi için etkili durum arzetmiyorsa,SharePiont designer kullanarak kendi özel 'workflow'larınızı oluşturabilirsiniz.Microsoft Office SharePoint designer 2007 SharePoint sitesine güçlü parçaları yapılandırmak,özelleşetirmek ve katkıda bulunmayı size olanak sağlayan Wep sitesi gelişim ve yönetim programı olarak tabir edebiliriz.

SharePoint designer işbirliği içinde veya çalışır durumda oldunuz siteye yakın anlamda bakış ve duyalılık sağladığı gibi belirlemelerin raporlama ve takip aşamalarınıda yapabilir düzydedir.Ve ayrıca Workflow designer kullanarak 'Workflow'ları oluşturabilir ve yönetebilir durumdadır.


3-Visual Studio kullanımı:

Bazı durumlarda 'Workflow' gereksinimleri ,yerleşik düzendeki workflow ve SharePoint Designer ile biçimlendirmek için çok fazla komplex durumda olacak.Örneyin bir e-mail göndermek için 'workflow'larda özel prosüdürel (code) yazmak isteyebilirsiniz.Bu durumda komplex bir 'workflow'yapılandırmanız gerekecek.

Komplex durumda Workflow yapabilmek için Visual Studio 2008 kullanmanız gerekir.Ayrıca burada WF bütün belirlemelerine girebilir ve özel anlamda code yazabilirsiniz.Özel olarak designer yaptığınız 'workflow'ları tıpkı herhangi bir ASP.NET wep uygulamasına ilişkilendirdiniz tarzda SharePoint (site)sinede ilave edebilirsiniz.

Monday, October 11, 2010

Microsoft ürünlerinde Windows Workflow Foundation uygulaması

.Net Framework 3.5'in Windows Vistayla olan ilişkisi
Windows vista aerodinamik şekilde yapılandırılmış kullanıcı arayüzü , gelişmiş masa üstü araştırma parçaları,microsoft internet explorer 7, gelişmiş ses belirlemeleriyle ve ayrıca herhangi bir windows versionundan daha yüksek derecede bir güvenirliyle göze çarpıyor.Windows Vista .Net Framework 3.0 kapsar durumdadır.Buradan Windows Presentation Foundation,Windows Communication Foundation,Windows CardSpace ve Windows Workflow Foundation Windows Vistada ilişkilendirilmiş durumda anlamını çıkarabilriz.
Vindows Vista bütünüyle .Net Framework 3.5 destekler durumdadır fakat Visual Studio 2008 düzenlemek veya download etmek zorundasınız.
Windows Workflow Foundation uygulamalarını Windows Vistaya dağıtımının
gerçekleşmesi
Windows xp veya Windows'un basit versionlarında 'workflow' kurmak için,'ilk .Net Framework 3.5 kurmamız gerekecek bu altyapıyı kurmamız bizim 'Workflow' kurmak için gereksindimiz 'Workflow runtime' elde etmemize vesile olacak. .Net Framework 3.0 Windows Vistada yapılandırılmış durumda olduğu için 'workflow' uygulamalarını dağıtmadan önce 'Framework' düzenlemene gerek yok.'Runtime 'workflow' örneyini kurmak için yazır vaziyettedir.
Windows Workflow Foundation ile 3.0 veya 3.5 gibi özel versiyonları hedefleye bilir olmana rağmen,Visual Studio 2008'i kullanarak oluşturulan 'workflow'larla bütünleştirme uyumluluğunu kesinleştirmek için .Net Framework 3.5 runtime düzenlemen gerektiği önerebilirm.

Friday, October 8, 2010

Workflow Tipleri


Birçok farklı senaryo tipleri, bilgisayar sistemlerinin ve toplumsal etkinlikleri kordineli bir şekilde işeltimini gerçekleştirmek için gelişimsel düzyde organizasyonlarda çalışanlara ihtiyaç duymaktadır.Örneyin bilgisayar sistemlerini, toplumsal düzeydeki etkinlikleri ve her ikisinden oluşan bir karışıma sahip olmanız durumunda işlevsel düzeydeki etkinliklerin itiva edilmesi muhtemeldir.'WF' bir çok senaryo için solusyonlar yapalir olduğunu öne sürersek,'Workflow'un iki türünü seçelirlir durumda olacakğımızı düşünebiliriz.Aslında veri güdümlü 'wokflow' olan üçüncü bir türüde yok deyil hani.Burada veri güdümlü 'Workflow'ların ne olduna dair açıklamalar da yapıcaz.Şimdi 'Workflow tiplerini incelemeye başlayalım.

SEQUENTİAL=
Burada (Sequential workflow) ön tanımlı bir düzende işleyen aktivitelerin bütününden ibarettir.Sitem, işlem düzeyine entepeden başlayıp son akış konumuna kadar bir akış düzeni itiva etiğini söyleyebiliriz.'Sequential workflow' döngüleri,koşullu testleri ve diyer akış kontrol yapılarını kapsayabilir.Yinede 'workflow'larla akış düzenleri ve akış düzenlerini takip eden adımların sınırlı miktarıyla karşılaşmaktayız.
Örneyin teknik bir zaman dilimi için hazırlanan bir uygulamada programlanmış 'workflow' oldunu düşünebiliriz.Ve bu zaman dilimi için oluşturulan 'Workflow' birçok kişiyi kapsayabilir.

.Bir müşteri temsilcisi ,hazır olan program üzerinde yer ayırmak isteyebilir.
.Yönetici kişi bir işin tamamlanabilmesi için yetenekli bir teknisyen seçebilir.
.Web servisi,ayrılmak istenen yerin var olan bir programla çakışmaması için kotrol seviyesindedir.
.Yönetici,akış düzeyinde ki bütün koşulların gerçekleşmesinin ardından son olarak belirlenen yerin belirlenen kişiye tastik edilmesi için onay veren konumundadır.


Bu örnekte bir kişi için yerin ayrılması,belirli adımların sınırlı düzeyde atılarak oluşturulan akış diyagramlarını kapsayan 'Workflow'lar sayesinde olur.Örneyin bir kişi için ayrılmak istenen yer başka bir kişinin planlamış olduğu programla aynı güne iştirak ederse,bu başka bir boyuttaki çatışma durumunda ki referans olarak belirlenen yerden 'onay prosödürü' kaç basit adımı takip ederek geri gönderilebilir olmasına rağmen,bu geri gidişatın akışını tayin eden 'Workflow sayısı sınırlı düzeyde diyebiliriz.Fakat yinede 'sequential workflow'ların sistem boyutunda herzaman basit bir işlevi olduğu anlamı çıkarılamaz.

STATE MACHİNE=
'State machine workflow' bir workflow örneyini bir durumdan diyerine değiştiren durum ve geçişlerden işlevelrini itiva eder.Başlangıç ve sonuç durumlarının arzetmesine rağmen,beraberinde gelişen durumlar daha çok akış düzeni üzerine odaklanmaz.Ve basit bir örnek bir çok alanda 'workflow'larla taşınabilir.

Örneyin 'helpdestek workflow'u gözönünde bulundurabilirsiniz. Her bir problemlesel işlevi çözümlenmemiş bir konum itiva eder.Ve bu düzey bir takım işlevlerden sonra şu aşamaları kapsayabilir:

.'Support technician' bir problemi kullanıcı için çözdüğünde, sistem için çözülmeyi bekleyen girdi çözülmüş bir evrede degişimin sonucu oluyor.
.Bir kulanıcı işlev düzeyindeki solusyonu çalıştıramadığında,sistem için çözülmeyi bekleyen girdi çözümlenmemiş bir durum olarak beyan edilir.
.'Support technican' problemin çözümünü bulamadığında sistem için çözülmeyi bekleyen girdi artışın görünümünü itiva eder.

Problem daha çok çözünürlük ve doğal bir artış durumuna taşınabildiği gibi herhangi bir zaman diliminde çözümlenmemiş durumada geri taşınabilir. Daha çok toplumsal etkinlikleri temsiliyetcileri işlevsel bir düzen tesbit eder durumdadır.

DATA DRİVEN=
'Data-driven workflow',ek bir kaç sınırlandırılmış aktivite gurup ve poliçeleri itiva eden 'Sequential workflow'diyebiliriz. Veri güdümlü ve belirli bir kurala tabi olan workflowlarda,dıştaki verilerin kotrolünü itiva eden kurallar bir nevi 'workflow'un işlevsel alanını belirler durumdadır.Daha çok sınırladırılmış aktiviteler, ortaya çıkabilecek aktivitelerin tesbiti için kurallar çercevesinde konrol mekanizmalarını işletir.

Tekrardan teknik bir zaman diliminde beyan edilen bir onaysal yapının, uygulama boyutunda programlanan bir workflow olduğunu düşünelim.Birde burada teknik düzeyde çalışanların verimini artırmak ve yönetici pozisyonunda olanların ise iş yükunü düşürmek için,işlevsel düzeyde olan'Workflow'a bazı bir kaç kural ekliycez.

.Bir teknisyenin kişisel gelişimi için belirlenen zaman dilimi bir önceki aya göre %10'dan daha az düzyde ise,Sistem otamatik olarak kararlaştırılmak istenen zaman dilimini işleve tabi tutmaz.
.Uygun yetenekleri olmayan bir teknisyen, belirli bir zaman dilimi için beyan etmek istediği talep ulaşılabilir düzeyde deyilse,bu durumda sistem yönetici konumunda bulunan şahısa hiçbir talep göndermemesi gerekir.

Veri güdümlü 'Workflow'ları kullanarak,sisteminizde bu tip kurallar oluşturabilrsiniz.


Tuesday, October 5, 2010

Workflow senaryoları

Windows Workflow Foundation, satış prosüdürleri veya bilgisayar sistemlerine bağlı olan kredi kartı ödeme sistemlerini kapsayan projeleri biçimlendirebilir.Karışık yapıların farlı düzeyde oluşumlarını biçimlendirmemiz gerekliliği Windows Workflow Foundation iki farklı tarzda Workflow oluşumuyla sonuç bulur.Bunlar ardı sıra giden Workflowlar ve state machine(durum makinesi) Workflowlar olarak bilinir.Ardı sıra giden Workflowlarda, aktiviteler belirli düzende belirlenmiş şekilde işleme tabi tutulurlar ve Workflowların açık şekilde başlangıç ve bitim noktaları vardır.Ardı sıra oluşan Workflowlar döngü,kolara ayrılmış sekilde devam eden yapılar ve veri akışın kotrolünü saylayan yapıları kapsayabilir.Fakat burada başlangıçtan sona doğru tanımlanmış bir yol yoktur.

Workflow dizaynerda,workflow en üst seviyeden başlar ve aşaya doğru projelenir. Ardı sıra izleyen workflowlar,wokflow modeli çalışma ortamı sakinlerine göşterdiğinde ve bir projenin geçmişte oluşmuş basamaklarının takibinin yapılamsına gerek kalmadıgında iyi bir şekilde çalışacağı bir gerçektir.Örneyin bir uygulama ,bir müşterinin destek gereksinimini elde etmek için uygun durumdaki çalışana bir e-mail göndermesi gerekirse, sistemin e-mailı kimin gönderdiğini tesbit etmesi gerekir.Workflow mantığı ,şu anda elimizde bulunan talep etimiz kaynağı paylaşmak için uygun yeteneklere sahip olduğu gibi kimin olduğunu ve en ucuz kaynak hangisi olduğuna karar verme aşamasını oluşturur.Yinede Sonuç yine aynı ,yani sistem yine e-mail gönderiyor.

Durum makinesi workflowda,ardı sıra izleyen workflowların aksine,akışın hiç açık bir gidişatının olmadığı onun yerine daha çok durumlar arasında ki geçişleri tetikleme gereksinimini tanımlayan durumlar ve olayların miktarını ortaya koyar. Durum makine workflowrın çalışma sakinleri,daha çok komplax durum dizaynı hakında bilgisi olan yazılım gelişimcileri olduğunda iyi şekilde çalışıyor.Ve durum makinesi workflowlar ,bir biri ardı izleyen workflowlardan daha koplex alanların oluşumunu sağlıyor.

Örneyin yazılım geliştiriciler için bir hata takip uygulamasında,hata bir çok durumda ortaya çıkabilir; yeniden çözülme,kararlaştırılmış ve proje ilerlerken.Hata daha çok gelişimciler bir problemi paylaştığında,hata çözümlenmemişten kararlaştırılmışa doğru hareket eder durumdadır.Yinede test eden kişi bir problemi ortaya atarsa, sistem içinde hatayı geri çözülmemiş duruma taşıyabilir.Bu durum testeden kişi hoşnut durumda olana kadar çoğu kez tekrarlanabilir.

Monday, October 4, 2010

Gelişiciler 'Workflow Foundation'u kullanarak nasıl pratik şekilde çalışıyorlar?

Hatırlayacağınız üzere bir 'Workflow' geliştirdiğinizde bir iş projesi modeli oluşturmuş olursunuz.Bir projenin ortaya koyduğu bütün adımların olası sonuçlarını tesbit edebilmek için ilk önce bir iş projesine yatırım yapmanız gerektiğidir.Örneyin Bir offis çalışanın tatil gereksinimini onaydan geçirecek olan müdür ofis dışında olması durumunda veya offis içinde çalışan başka bir işçinin daha önce tatil için planladığı günle, bir tatil için gün belirlemeyi düşünen başka bir işçinin tatile çıkmak istediği gün aynı tarihlere iştirak edme durumu bibi olasılıklar göz önünde bulundurularak iş projesi hazırlanma aşamasına girilmelidir.

Küçük çaptaki organizasyonlarda işletme bazına tesis edilmeyen iş analistleri yerine,gelişimciler bütün yatırım sorumluluğunu üzerlerine almak durumundadırlar.Gelişimciler bu zor durumdan ancak 'Windows Workflow'larla çalışarak teknik problemleri arka pilana atıp daha çok proje bazında çalışmalara odaklanarak çözerler.Bunun yanında daha büyük bütçeli daha büyük organizasyonların, bütün yatırımları üzerine alan uzman durumunda ki iş analistleri vardır.

Bir 'Workflow' diagramı Visual Studio'nun Workflow dizaynırında yapılan'Workflow'lara benzer durumdadır.Buna takiben iş analistleri 'Workflow' diagramlarıyla daha haşır neşir olmasından dolayı, 'Windows Workflow Foundation' gelişimcilere iş analistleriyle daha yakın pozisyonlarda çalışmasına olanak sağlar.

Doru zamanda doru yatırımların gerçekleştirilmesi durumunda ,bütün yapılması gereken iş projelerini biçimlendirmek için doru bir 'Workflow' aktivitesinin seçilmesi gereklidir.Hatta bu aktiviteleri Visual Studio'da bulunan ve daha önce hakkında bahsetmiş olduğum komlex sekilde dizayn etmek istedimiz 'Workflow' aktivitelerini oluşturmamıza yardımcı olan 'Designer' yardımıyla, koplex olarak yapılandırmak istediğimiz 'Workflow'aktiviteleri ve aktiviteleri şekilendirmemeize yardımcı olacak 'Designer' için bir alan ayarlayıp,ikisi arasında ki bağlantıyı sağladıktan sonra elimizdeki 'Workflow' aktivitelerini 'Designer'a ilave edip hızlı bir şekilde yapılandırabiliriz.Hatta kolaylık olası açısından benzer durumda ki 'Workflow' seçeneklerini kopyalayıp yapıştırarak daha kolay işleme alabiliriz.

Bu gelişim yaklaşımı, benzer durumdaki iş projelerini biçimlendiren uygulamaların hızlı bir şekilde gelişimine olanak sağlayacaktır.

Sunday, October 3, 2010

Bir 'Workflow' yapılandırmasının gelişimciler iş ortamında sağladığı yararlar,

Workflow Foundation özel olarak tasarlamak istediğiniz aktivitelere bağlı olan 'Workflow'ları yapılandırarak iş projelerimizi biçimlendirmemize yardımcı olduğunu önceki yazılarımda açıklamıştım.Bu proje bazında ki yaklaşım gelişimciler için önemli düzeyde avantaj teşkil edebileceğini düşünebiliriz.Birkaç liste dahilinde sizlere vermek istediğim örnekler ,gelişimciler için bu yaklaşımların sağlamış olduğu yararı anlamanıza yardımcı olması yanında 'Workflow'ları oluştururken sizlere nasıl yardım edebileceğinin açıklamasınıda riayet edecektir.

İş mantığı(Business Logic)= 'Workflow' altyapısı daha çok teknik problemlerden ziyade iş mantığı üzerine odaklı olarak gelişimcileri destekler durumdadir.Bu ise daha çok bir işin başlangıcından bitimine kadar tekabul eden, kullanıcaların iş projelerinde yapmakta olduğu modelsel yaklaşımların uygulama bazındaki doğal bir sonucudur diyebiliriz.

Gelişimciler özel aktiviteleri oluşturmasıyla Oluşturulan 'Workflow'lara bağlı olan teknik düzeydeki problemlerin üstesinden gelebilecektir.Bu ise gelişimcilere, iş projeleri ve bu projelerin gereksinimlerini daha iyi düzeyde ilişkilendirmek için 'Windows Workflow'u kapsamlı bir yapısal düzeye getirilmesinde gelişimcilere olanak sağlayacaktır.

Gelişimciler oluşturtukları bu özel aktiviteleri test ettikten sonra bu aktiviteler daha önce oluşturmuş oldukları 'Workflow' aktivitelerine dahil edilebilir ve bu aktivitelerden yeniden karışık düzeyde 'Workflow'lar yapılandırmak için kullanıldığı gibi hatta çoğu kez kullanım için özelleştirilebilir.

Uyumluluk(Adaptability)=İş projelerinde prosodür ve pratik uygulamalarla çalışmak artık sık sık değişir olması kaydadeğer olmaya başladı.Bu durum pazarlama alanında,kalite konrolünün ilerlemesi,iş mantığının genişlemesi veya çoğu nedenlere bağlı olarak bir değişimin olası sonucu anlamına gelebilir.Örnek olarak İş sektöründe işi takip eden(bussines analyst)ler küçük bazlarda sisteme girişi olan memurlar tarafından tutulmuş prosodürlerin farkına varabilirler. Ve neticede ilgili prosodürden ilgili memuru taşımakla,'bussines analysts' hedef prosodürün kalite bazında akışsız olarak hızlandırabilir.

Bilinen tipik uygulama altyapısı değişimi işlevsel düzeyde engel teşkil edeceğinide düşünebiliriz.Örneyin tipik bir uygulamadaki prosodürü değiştirmek için gelişimcilerin belirli düzeydeki adımları gerçekleştirmesi gerekir.
Bu adımlar;
1.Uygulama bölümünü yeniden yazma
2.Uygulamayı yeniden test etme
3.Uygulamayı derleme
4.Kullanıcı durumundaki kişilere uygulamayı dağıtmak

Herhangi bir zaman bir uygulamanın yeniden yazılması,test edilmesi ve dağıtılması gereksinile bilir.Bu durumda iş verimliliği, gelişimin belirli süreç teşkil eden bölümünün dahil edilmesi nazarında,iş ortamında çalışan kişilere bağlı olarak ızdırap vesilesi ile sonuçlanabilir.

WF (XAML) tarzda 'Workflow'ları depoladığı için iş prosoturlerinin genişleme dosyalarında derlenemeğeceğinin farkında olmalıyız.Üstelik genişleme dosyalarında iş prosodürleri daha kolay şekilde yeniden yazılabilir fakat derlenemez ve hatta dağıtımının daha basit olduğunuda düşünebiliriz.Ve ayrıca isterseniz yukarda saydığım evreler gerçekleşirken 'Workflow'larda kolayca değişiklik yapabileceğimizi göz ardı etmememiz gerekir.

Uzun bir zaman diliminde iş oluşum projesi(Long-Running Process)=Yanlız bilgisayar sistemlerine bağlı olan 'Workflow'lar genellikle daha hızlı işlevseliğe sahip oluyor.Yinede toplumsal aktiviteleri kapsayan 'Workflow'ların, aktivitelerin bir bağlamı olan kullanıcıların bir görüşme esnasında,ofis dışında veya tatilde olamsı nedeniyle, daha sık düzeyde uzun kullanımına vesile olabilir.Kullanıcıların yapmış olduğu işlemlerin sonucu çıkana kadar günlerce ve aylarca bekleyebilir.Bu noktada WF bu uzun zaman diliminde kapsamlı olarak destek salayan bir mekanizmsı vardır.

İşleme tabi olan 'Workflow' örneyi kullanıcı yanıtını beklerken, konuk olduğu servis bölgesinin hafızasında aktif olarak bekler durumdadır. İstersek Workflow Foundationda servis genişletme(alan bazında) işlevseliğini kullanarak,konukcul durumundaki sistemin hafızasını kulanmayıp ,ilgili'Workflow'u alan bazında yer edindireceğimiz ek bir depoya yükleyebiliriz.Bu durum 'Workflow'ları işleyen bilgisayar sistemleri üzerinde kaynakları zarar vermesini engellememiz açısından mükemmel.

Yanıt WF ulaşmasıyla beraber (WF) olayı kabul ediyor ve sonra 'Workflow'da iş akışını gerçekleştiren iş motoru(runtime) ilgili veri deposundan 'Workflow'un kulanılır durumda olan aktivitesini kendi bünyesine yeniden yükleyip,kullanım için'Wokflow' ların toplu halde bulunduğu yere aktarıyor ve sonra işlen 'Workflow'daki gelecek aktivitenin işleve sokulamsıyla ilerliyor.

'Workflow'ların veri kayıplarını ve durumlarını engeleyebilir olması umulmadık uygulama ve bilgisayar işlev kayılarının önüne geçebilmesi olarak düşünmemizde yararvar.


Görsel Dizayn(Visual Design)= (WF) ,Visual dizaynerla 'Workflow'geliştirmemize olanak sağlayan Visual Studio 2008'e ilişkilendirilmiş durumdadır. Burada 'Designer' 'Workflow'ları dizayn ederken a 'Workflow'un görsel şekilde gürünmesini sağladığı gibi aynı zamanda 'Workflow' işleme tabi olduğunda İşlemsel alanın açık bir portresini bize gösterir durumdadır..Şayet 'Workflow' gereksiz döngülerin oluşumunu gerçekleştirirse veya fazlalık iş etkileşimelri gerçekleştirirse ,bu durumları basit şekilde tespit edebilme özeliğine sahiptir.

'Visual Studio' da bulunan 'Workflow designer'daki bileşen ve parçalar iş ortamında analiz etmek için kullanılan gereçler deyildir.Genelde bu bileşen ve parçalar iş analistlarinin tabir ediyor olduğu tarzda temsil ediliyor ve bundan dolayı analistler gelişimci bazında işleve sahip olmamalarına rağmen ,bu temsiliyette bir bağlarının olması onlar için anlamlı görünüyor.Bu işlev ise analistlerin 'Workflow Design'ı yeniden incelemesine olanak sağladığı gibi grafik,diagram veya özel geçişleri gereksinmeden gereksinildiği gibi gelişimcilere geribildirim sağlaya biliyorlar.

Saturday, October 2, 2010

Windows Workflow Foundation nedir?

Windows workflow Foundation,gelişimcilerin .Net Framework 3.5 uygulamaların'da 'Workflows' oluşturmak ve bu oluşturulan 'workflows' çalişir hale getirmek için kullanabilecekleri bir kaç parça ve bileşen düzeneğiğinin yanısıra bir dizary yapabildimiz bileşeni içeren bir yapıya sahiptir.Ayrıca 'Windows Workflow Foundation'nun .Net Framework 3.5'in bir bölümü oldunu bilmemizde yararvar.
Workflow daha önce bahsetmiş olduğum üzere iş ortamında çalışırken karşılaşılabilecek senaryoları tanımlayan tıpkı bir model gibi olan bütün aktivitelerin bir düzeni olarak tabir edebiliriz.Örnek vericek olursak şayet bir şirkette çalışan işçi tatil için yer ayırtmak isterse,ilk olarak iş akışının gerçekleştiği 'Workflow'uygulamasında tatil için çalışana ayrılması gereken gün programdan kontrol edilir.Ve şayet kontrol işlevi olumlu bir düzeyde ise 'Workflow'işlevi onaylama frekansına ayarlar,bu onaylama süreci yönetici tarafından gerçek gerçekleştirilir.İşte bu örnekte 'Workflow'un yapmış olduğu aktiviteler;iş ortamında çalışan kişinin tatil gereksinimini belirtmesi,bu gereksinimin onay aşamasından geçmesi ve tatil için yerin ayrılması işlemlerinden oluşur.Ve bu projeye sonuçları 'Workflow'la değiştirebilen birkaç insanıda dahil edebiliriz.
Workflow Foundation yardımıyla şirket çalışanın gereksindiği tatil projesinde ki adımları biçimlendiren aktiviteler oluşturabiliriz,iş ortamında bir talebin proje boyunca oluşan basamakları nasıl takip etiğini tanımlayan aktiviteleri 'Workflow'yapısı içinde bir araya getirebiliriz ve hatta bir uygulama yapılandırabilirsin örneyin 'Workflow' içeren ASP.Net wep paketleri gibi.
Şekilendirdimiz 'Workflow'ları bir hayli karışık olan iş projelerinede dönüştürmemiz mümkün.Bu iş projeleri koşullara bağlı olan farklı 'Workflow' düzeneklerini işlevsel hale getirebilir.Örneyin iş çalışanlarının birisi tarafından gereksinilen tatil gereksinimi reddedilebilir veya onaylanabilir işte durumda komplez bir 'Workflow'işleve sokulması gereklidir.'Workflow' ayrıca insan etkinliklerini içerebilir tıpkı bir iş çalışanı tarafından tatil gereksiniminin ortaya konması veya bilgisayar sistemlerinin bir akış çerçevesinde etkinleşmesi olarak tarif edebiliriz.Hatta birde 'Workflow'u iş projesine göre tasarlayıp,onu işlevsel hale getirdiğimizde istersen 'Workflow'üzerinde değişiklik yapma imkanımızda var.Örneyin 'Workflow'daki iş mantığını oldukça kısa bir uslupta değitirebiliriz.
Windows Workflow Foundation .Net sınıflarının Programlama mantığına dayanan modellerini kapsadığı gibi ve ayrıca bir 'Workflow'u oluşturmak için kullanabileceğin Microsoft Visual Studio 2008'e ilişkilendirilen parçalarıda kapsadığını söyleyebiliriz.