IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 07 Temmuz 2010, 23:17   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Intraweb Uygulamalarının dağıtımı




Intraweb Uygulamalarının dağıtımı

Arkadaşlar merhaba aslında ben IntraWeb Makalelerine geşlişmiş JavaScript örnekleri ile devam edip finalde de IntraWeb ile AJAX ı bütünleştirmeyi anlatmayı düşünüyordum ama talep üzerine bu konuyu araya sıkıştırmam gerektiği kanısına vardım diğer konulara da kaldığımız yerden devam ederiz artık.


Intraweb uygulamalarının birkaç farklı şekilde dağıtımını yapabilirsiniz, bunları sıralayacak olursak
1. Standalone ( Tek bir çalıştırılabilir sunucu uygulama)
2. Windows service Application( Windows Hizmet Uygulaması)
3. ISAPI Extension( ISAPI Uzantısı )
4. Apache DSO ( Apache Dynamic Shared Object )
5. Linux daemon olarak

1 - Standalone ( Tek bir çalıştırılabilir sunucu uygulama)

Bu dağıtım şekillerinin hepsi de çok basit olarak uygulanabilir. Bunlardan en basiti bizimde makalelerde kullandığımız standalone(tek bir exe dosya) çalıştırılabilir dağıtım şeklidir. Bu tür dağıtım da anlatılacak pek bir şey yok delphi de oluşturduğumuz .EXE dosya bizim sunucu uygulamamamızdır yani sunucu olarak kullanacağımız makine da çalışır durumda olması gerekir diğer makinalardan sunucu uygulamamızın sağladığı IntraWeb web uygulamasına erişmek için yapılacak tek şey ilgili sunucu makine IP adresi ve uygulamayı oluştururken ServerController nesnesinde belirlediğimiz sunucu port numarasın dan oluşan web uygulama adresini girmek tir. Sunucu port u varsayılan olarak daha öncede belirttiğimiz gibi 8888 dir protun varsayılan olduğunu kabul edersek adresimiz aşağıdaki gibi olacaktır.

http: //127.0.0.1:8888

işte bu kadar basit yukarıdaki adresi tarayıcımızın adres satırına girip ENTER tuşuna basınca sunucu uygulamamız sayfalarımızı yayınlamaya başlayacaktır.
Bu konu ile ilgili daha önce örnekler verdiğimiz için extra ekran görüntüleri veya örnekler vermeye gerek duymuyorum eminim herkes bunun nasıl yapıldığını gayet iyi bilmektedir.

2 - Windows service Application( Windows Hizmet Uygulaması)
Service Application olarak oluşturmamız gerekiyor. Bunun için delphi de File->New->Other… sırasını takip ederek açacağımız Delphi New Items penceresinde soldan IntraWeb i seçip sağdan da IntraWeb Application Wizard ı seçerek OK button ına tıklıyoruz Normalde tüm IW uygulamalarında buraya kadarki işlemleri standart olarak yapıyoruz.
Daha sonra açılan IntraWeb application Wizard ta Application Type kısmında Service Application radio button ını seçip Application Name kısmınada IWServiceApp yazarak OK e tıklıyoruz.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

Delphi IDE si bu işlemden sonra bize Intraweb hizmet uygulamamız için gereken dosyaları oluşturacaktır.bundan sonra yapılacak bir iki ufak ayar dışında yapılması gerekenler daha önce IW uygulamaları hazırlarken yapılanlardan farklı değildir.
Uygulamamıza formlar, bileşenler vs ekleyip istediğimiz gibi tasarlayıp son olarak derler ve kullanıma hazır hale getiririz.
Burada dikkat edilmesi gereken şeyler ise şunlardır. Öncelikle Uygulamamız bir Windows servis uygulaması olduğu için Windows Yönetim Konsolunda Hizmetlere bakarken bizim IW servis uygulamamızı görünür olmasını sağlamak ve yönetim konsolu üzerinden ayarlarını yapabilmemiz için ServerController unitimizin ObjectInpector de AppName ve Description özelliklerini ayarlamamız gerekmektedir.
Ben AppName özelliğine “IWServisDescription özelliğini de “Intraweb Windows Servis Uygulaması
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
delphidunyasi . net
” olarak değiştirdim şimdilik yapacağım şey sadece bu kadar artık uygulamadaki formalarımı hazırlayacağım projeye göre dizayn edip ilgili bileşenleri ekleyip ilgili kodlarımı yazdıktan sonra projemi derliyorum, evet derliyorum çünkü hazırladığımız proje bir hizmet programı(service application) olduğu için delphi IDE sinden çalıştırdığınızda eğer kodlama da bir problem yoksa çalışıp duracaktır zaten kodlamada hata varsa gerekli hata mesajlarını alacaksınız.
Dedim ya projeyi derliyoruz ve sonuç olarak IWServiceApp.exe adlı Windows hizmeti olarak çalışacak olan sunucu uygulamamız ortaya çıkmış oluyor.
Artık bu aşamadan sonra hizmet uygulamamızı Windows ta kurmamız gerekiyor Intraweb hizmet uygulamasının Windows hizmetlerine kurulması ve kaldırılması çok basittir, yapacağımız tek şey aşağıdaki kodları ilgili hizmet uygulamamızın bulunduğu dizinde vermek o kadar

Hizmet_uygulaması_adı.exe –install
Hizmet_uygulaması_adı.exe –uninstall


Buna göre bizim projemizin .exe adı IWServiceApp.exe olduğuna göre proje dizininde komut isteminde vermemiz gereken komut;

IWServiceApp.exe –install


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

Yukarıda benim DOS komut isteminde IW Windows hizmet uygulamamın kurulumunu görüyorsunuz gördüğünüz gibi hizmet uygulamamın Windows a başarılı bir şekilde kurulduğuna dair bir uyarı mesajı aldım, aynı uyarıyı hizmet uygulamasını kaldırdığınızda da almalısınız. Artık servisimiz kurulu şimdi servisimi başlatıp kullanmak için Windows Yönetim Konsolu nu açıp servisimizi başlatmamız gerekiyor direk hizmetlere ulaşmak için eğer başlat menüsünde Yönetimsel Araçlar menüsü varsa buradan Hizmetleri seçiyoruz veya Başlat->Çalıştır sonra Çalıştır penceresinde Aç kısmına

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
%SystemRoot%\system32\services.msc /s

yazarak servis yönetim konsolunu açabilirsiniz veya bilgisayarım simgesini sağ tıklıyoruz açılan menüde Yönet i seçip bilgisayar yönetim penceresinde sol Treeview de Hizmetler ve Uygulamalar Node u altında bulunan Hizmetler Node unu seçtiğimizde sağ tarafta sistemimizde bulunan tüm hizmetler hakkında gerekli bilgileri bulabiliriz.
Projeyi tasarlarken biz ServerController nesnemizin AppName özelliğine IWServis yazmıştık Hizmet yönetim konsolun da bizim IW hizmet programımızı listeden IWServis adı ile buluyoruz ve yönetim konsolunda hizmet listesinin sol üst köşesindeki Hizmeti Başlat linkini tıklayarak uygulamamızı Windows hizmet uygulaması olarak başlatıyoruz. Aşağıda uygulamamızın Hizmet konsolundaki görünümü yer almaktadır.



Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

Artık uygulamamız bir Windows hizmeti oldu yani işletim sistemi başladığında başlatabilir veya elle başlatabiliriz, kısacası bir Windows hizmet programına ait tüm ayarlamaları bizim hizmet uygulamamız için de yapabiliriz. Aşağıda uygulamamızın özellik penceresi gözükmektedir


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Pencerede dikkat ederseniz proje tasarım anında ServerController nesnemizin AppName ve Description özelliklerinin yansımları aşağıdaki gibi olmuş

Görüntü adı : ServerController.AppName(aynı zaman da hizmet adı)
Açıklama : ServerController.Description


Resimden de anlaşılacağı gibi hizmetimiz başlamış durumda. Şimdi yapmamız gereken şey diğer tüm IntraWeb uygulamalarında olduğu gibi uygulamamızın başlangıç URL sini proje tasarım anında belirlediğimiz ServerController.Port özelliğine uygun olarak tarayıcı adres satırına girmek ve hizmet uygulamamızı kullanarak oluşturduğumuz IntraWeb uygulamamızın WebFormlarına erişmek olacaktır.

http: //HizmetinÇalıştığıMakinaIP:port

http: //192.168.1.41:8888

hizmet windowsta çalıştığı sürece uygulamamı gönül rahatlığı ile kullanabilir, sayfalarıma ulaşabilirim.


3 - ISAPI Extension( ISAPI Uzantısı ) olarak dağıtım

IntraWeb ISAPI uygulamaları da normal ISAPI (Internet Server Application Programming Interface) uygulamaları gibidir.
Normalde bir önceki dağıtımlar uygulamalarınızın genellikle bir IntraNet te kullanımına olanak sağlarlar fakat IntraWeb ISAPI uygulamalarını ISAPI uzantılarını destekleyen sunucularda rahatlıkla kullanıp uygulamalarınızı dünyaya açabilirsiniz.
Biz burada yerel sunucu da çalışacağımız için dağıtımın anlatımını MS IIS (Microsoft's Internet Information Services) e göre anlatacağız.
Şimdi herhangi bir IntraWeb uygulaması hazırlar gibi Delphi IDE sinde File->New->Other… seçeneği ile Delphi New Items penceresini açalım Soldan IntraWeb i seçip Sağdan da IntraWeb Application Wizard ı seçtikten sonra OK i tıklayalım artık aşina olduğumuz IntraWeb Application Wizard penceresinde Application Type olarak ISAPI Extension radio button ını seçip Project Name kısmına da IWISAPIApp yazarak OK i tıklayalım, malumunuz Delphi bizim için her zaman olduğu gibi projeyi ve gerekli standart unitleri oluşturacaktır.
Bu aşamaya gelince delphi Project Manager penceresinde uygulamamızın adının IWISAPIApp.exe değil de IWISAPIApp.dll olarak eklendiğini fark edeceksiniz.



Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

Bir diğer önemli değişiklik ise daha önceden hazırladığımız Standalone uygulamalarda Proje kaynağına baktığımızda

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
program IWEposta; uses Forms, IWMain, uMain in 'uMain.pas' {frmEposta: TIWAppForm}, ServerController in 'ServerController.pas' {IWServerController: TIWServerControllerBase}; {$R *.res} begin Application.Initialize; Application.CreateForm(TformIWMain, formIWMain); Application.Run; end.

Benzeri bir kod ile karşılaşırken ISAPI uzantısı şeklinde hazırladığmız projemizin kaynağına bakınca ise

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
library IWISAPIApp; uses ISAPIApp, IWInitISAPI, Unit1 in 'Unit1.pas' {IWForm1: TIWAppForm}, ServerController in 'ServerController.pas' {IWServerController: TIWServerControllerBase}, UserSessionUnit in 'UserSessionUnit.pas' {IWUserSession: TIWUserSessionBase}; {$R *.RES} exports GetExtensionVersion, HttpExtensionProc, TerminateExtension; begin IWRun; end.

Şeklinde bir kod ile karşılaşacaksınız. Bunun haricinde temelde başka hiçbir değişiklik yok yine uygulamamıza yeni form lar ve bileşenler ekleyip programlama yapabiliriz, bu farklılıklar sadece uygulama dağıtımı açısından önem arz eder.
Diğer tüm ayarlarınızı normal uygulamalarda yaptığınız gibi yapabilirsiniz. Burada ufak bir ayrıntıyı eklemek istiyorum aslında gerekli olmasada ben ISAPI uygulamalarınız için bir başlangıç komutu tanımlamanızı tavsiye ederim yani ServerController nesnemizin StartCmd özelliğine bir değer girmenizde fayda var ben bu özelliğe Baslat değerini giriyorum genellikle. Bu uygulama URL sini biraz uzatır ama pratikte faydası olduğu kanaatindeyim.
Bu ufak açıklamanın ardından uygulamamız da gerekli tasarımı yapalım ve derleyerek ISAPI uzantısı olan IWISAPIApp.dll kütüphanemizi oluşturalım ben tasarım için Form üzerine bir IWButton birde IWLabel koydum, Porjeyi test etmek için IWButton ın sunucu taraflı OnClick olay işleyicisinde
Aşağıdaki kodu yazdım

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
procedure TIWForm1.IWButton1Click(Sender: TObject); begin IWLAbel1.Caption := ' Bu benim IntraWeb ISAPI Uygulamam '; end;

bu basit şeyler için fazladan ekran görüntüsü eklemedim, sanıyorum hepimiz bunu ve daha fazlasını rahatlıkla yapabiliriz.
Neyse artık uygulamamın tasarımı bitti ve Projemi Derliyorum, çünkü proje derlendiğinde bir .DLL oluşturacağı için delphi IDE sinden çalıştıramayız.
Projemizi derledikten sonra işin püf noktası olan IIS e uygulamamızı tanıtma aşamasına gelmiş oluyoruz. Uygulamamızı IIS e tanıtmak için öncelikle Windows ta IIS in kurulu olması gerekmektedir sanırım burada bunu anlatmaya gerek yok ben kurulu olduğunu varsayarak anlatmaya devam ediyorum.
Windows IIS(Internet Information Services) Yönetim Konsolunu açıyoruz. Bu işide Windows Hizmet yönetim konsolunu açtığımız üç yöntemle(Yönetimsel Araçlar, Bilgisayar Yönetimi veya Çalıştır) de yapabiliriz ben en basiti olan Başlat->Çalıştır yolu ile açacağınız uygulama çalıştırma penceresinde Aç kısmına;
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
%SystemRoot%\system32\inetsrv\iis.msc

Satırını ekleyerek Tamamı tıklıyorum, bu işlem sonucunda IIS yönetim konsolu açılıyor


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

Şimdi IIS yönetim konsolu da az önce hazırladığımız ISAPI uygulamamızın bulunduğu konuma işaret edecek bir Sanal dizin(virtual directory) oluşturmamız gerekmekte aksi taktirde uygulamamızı çalıştıramayız. Şimdi konsolun sol tarafında bulunan Yerel Bilgisayarı solundaki (+) işaretine tıklayarak aşağı doğru açıp Web Siteleri - > Varsayılan Web Sitesi Node unu buluyoruz ve üzerinde sağ tıklayıp açılan menüden Yeni->Sanal Dizin… i seçiyoruz.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

Sanal Dizin… tıklandıktan sonra Windows Sanal Dizin oluşturma Sihirbazı bizi karşılayacaktır.
İlk pencerede İleri> yi tıklayıp geçiyoruz ikinci pencerede oluşturacağımız Sanal dizinimize bir takma ad(alias) vermemiz isteniyor ben burada MyIWISAPI adını kullandım sizde isterseniz başka ad kullanabilirsiniz, Takma adı belirledikten sonra tekrar İleri> yi tıklıyoruz bir sonraki aşamada oluşturacağımız sanal dizinin fiziksel yerini yani hazırladığımız ISAPI uygulamanın yerinini, bir başka deyişle IWISAPIApp.dll in bulunduğu dizini Sanal Dizin Oluşturma Sihirbaz nın 3. Aşamasında giriyoruz buraya kadar her şey normal sihirbazın 4. Aşamasında ise dikkat etmemiz gereken varsayılan olarak seçili gelmeyen çalıştır(Örn. ISAPI Uygulaması veya CGI) checkbox ını seçmek ayrıca bu uygulama için geçerli değil ama daha sonra oluşturacağınız uygulamalarda sunucuda bulunan Veritabanlarına veya diğer dosyalara istemci tarafından veri yazabilmek için Yazma izninide vermelisiniz. Bu işlem sonucunda Sihirbazın 4. Aşaması aşağıdaki gibi olacaktır.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

(Bu aşamada Yazma iznide verirseniz Sihirbaz bunun sakıncalı olduğu konusunda bir uyarı verecektir, dikkate almadan geçebilirsiniz. )
Yukarıdaki gibi seçimleri yaptıktan sonra tekrar İleri> yi tıklıyoruz ve Sihirbazın son aşamasında Son u tıklayarak sanal dizin oluşturma işlemini bitirmiş oluyoruz.
Bu aşamadan sonra son olarak olşturduğumuz sanal dizin için kendimize yetki vermemiz gerekecek aksi taktirde Sanal dizini oluşturmuş olsak bile uygulamamızı çalıştıramayız. Bunun için IIS yönetim konsolunda oluşturduğumuz sanal dizin adı üzerine sağ tıklayarak açılan menüden Özellikler itıklayıp Sanal dizinimizin özellik penceresini açıyoruz, özellik penceresi açıldıktan sonra pencerenin üst kısmından Dizin Güvenliği sekmesine geçiyoruz. Bu sekmede Anonim Erişim ve Doğrulama Denetimi bölümündeki Düzenle… button ına tıklayarak Kimlik doğrulama yöntemleri penceresini açıyoruz;



Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

Burada kullanıcı Adı kısmında dikkat ederseniz IUSR_Bilgisayar_Adı şeklinde standart bir kullanıcı tanımlı bu kullanıcı yetkileri çok kısıtlı olan Internet Konuk Hesabı dır(ek olarak Bu kullanıcıyı kendi makinanızda güvenlik açışından devredışı bırakmanızıda tavsiye ederim) , ben burada IIS yönetiminin detaylarına girmeyeceğim sadece hazırladığımız uygulamayı IIS in kurulu olduğu makinadan erişimi sağlayacak şekilde ayarlayacağım uygulamanızı gerçek hayat uygulaması olarak dağıtacağınız zaman IIS tabanlı sunucunuzda gerekli kullanıcı ve grupları ayarlarsınız artık.
Şimdi Internet Konuk Hesabı nın yanındaki Gözat… button ına tıklayarak Kullanıcı Seçimi penceresini açalım bu pencerede Gelişmiş… button ına tıklayalım ve sağ taraftaki Şimdi Bul button ını tıklayarak makinamızda tanımlı tüm kullanıcıların listesini döktürelim.



Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

Ben maiknamda Admin olarak oturum açtığım için Administrator u seçip Tamam ı tıklıyorum sizde kendinize göre kullanıcıyı seçin ve tamam ı tıklayın bir sonraki pencerede de değişiklik yapmadan tekrar Tamam ı tıklayın. Artık kimlik Doğrulama Yöntemi Penceresinde Kullanıcı adı kısmında

Bilgisayar_Adı\Kullanıcı_Adı

şeklinde kullanıcı adınız belirecektir aslında direk bu pencerede yukarıdaki formatta kullanıcı yı girebilirsiniz fakat ben bilmeyen arkadaşlar için biraz daha açıklayıcı olması açısından uzun yolu tercih ettim.
Bu aşamadan sonra tüm pencerelerde Tamam ı tıklayarak IIS yönetim konsoluna kadar gelin ve onuda kapatın artık uygulamamızı deneyebiliriz.

Uygulamamızın URL adres formatı

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
http: //Sunucu_Adresi/Sanal_Dizin/Uygulama_adı.dll/Varsa_Başlangıç_Komutu

bizim uygulamamıza göre URL yi dizersek eğer

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
http: //localhost/MyIWISAPI/IWISAPIApp.dll/

Ben birde ServerController ın StartCmd özelliğine Baslat değerini vermiştim benim URL adresimde;

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
http: //localhost/MyIWISAPI/IWISAPIApp.dll/baslat

şeklinde olacak. Artık sunucuya erişebilen tüm tüm istemcilerde yukarıdaki URL leri yazarak IntraWeb uygulamamıza erişebiliriz.
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

__________________
Büyümeden yaşlandım ben.Hayat; ilk gördüğüm insanların,ilk gördüğüm gibi olmadıklarını öğretti.

Kahraman Tazeoğlu
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Alt 01 Eylül 2010, 04:13   #2
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Intraweb Uygulamalarının dağıtımı




daha önce ISAPI uygulamaları yazmıştım.Sanırım işlem yaptığınız delphi sürümü delphi 2009 ? Oldukça yararlı bir döküman (anlıyan için)

 
Alıntı ile Cevapla

Cevapla

Etiketler
dağıtımı, intraweb, uygulamalarının


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Sohbet Uygulamalarının Facebook'a Getirisi 0 Spartacus Facebook Haberleri 0 08 Haziran 2012 23:00
Intraweb FrameWork (Giriş) Slipknot Delphi 0 07 Temmuz 2010 23:09
IntraWeb FrameWork (JavaScript Kullanımı-3) Slipknot Delphi 0 07 Temmuz 2010 23:03
IntraWeb FrameWork (JavaScript Kullanımı-2) Slipknot Delphi 0 07 Temmuz 2010 23:00
Intraweb FrameWork (ServerController) Slipknot Delphi 0 07 Temmuz 2010 22:47