Network Working Group C. Holland Request for Comments: 360 UCSD-CC Kategori: Protokoller, RJE Haziran 1972 NIC: 10602
ÖNERİLEN UZAKTAN İŞ GİRİŞİ PROTOKOLÜ
Uzaktan iş girişi, bir konumdaki bir kullanıcının başka bir konumda toplu işlemeye yönelik bir işin çalıştırılmasını sağlamasına imkân veren mekanizmadır. Bu protokol, böyle bir kullanıcının Ağ üzerinden uzaktaki bir toplu işleme sunucusuyla iletişim kurarak, sunucunun bir iş-girdi dosyasını almasını, işi işlemesini ve işin çıktı dosya(lar)ını uzak bir konuma teslim etmesini sağlayan Ağ standart yordamlarını tanımlar. Protokol, kullanıcı ile sunucu RJE süreci arasındaki tüm kontrol iletişimi için TELNET (socket 1 değil, özel olarak standartlaştırılmış bir logger’a) bağlantısını kullanır. Sunucu tarafı daha sonra iş-girdi dosyasını almak ve çıktı dosya(lar)ını teslim etmek için Dosya Aktarım Protokolü’nü kullanır.
İki tür kullanıcı vardır: doğrudan kullanıcılar (kişiler) ve kullanıcı süreçleri. Doğrudan kullanıcı, bir TIP’e ya da herhangi bir ana bilgisayara bağlı etkileşimli bir terminalden iletişim kurar. Bu kullanıcı, girdinin ve/veya çıktının belirtilen ana bilgisayardaki belirli bir soket üzerinden alınmasını/gönderilmesini sağlayabilir (örneğin TIP üzerindeki kart okuyucular veya yazıcılar için) ya da dosyaların Dosya Aktarım Protokolü kullanılarak yol adı üzerinden aktarılmasını isteyebilir. Diğer kullanıcı türü ise, bir uzak ana bilgisayardaki RJE Kullanıcı-sürecinin başka bir ana bilgisayardaki RJE Sunucu-süreci ile iletişim kurmasıdır. Bu tür kullanıcı nihayetinde talimatlarını bir insan kullanıcıdan alır, ancak tanımlanmamış dolaylı bir yol aracılığıyla. Bu protokolün komut ve yanıt akışları, hem insan kullanıcı hem de kullanıcı süreci tarafından kolayca kullanılacak ve yorumlanacak şekilde tasarlanmıştır.
Belirli bir kullanıcı konumu, her mantıksal iş için TELNET kontrol bağlantısını kurmayı seçebileceği gibi, kontrol bağlantısını uzun süreler boyunca açık da bırakabilir. Kontrol bağlantısı açık bırakılırsa, birden fazla iş-dosyası alınmak üzere yönlendirilebilir ya da isteğe bağlı olarak (girdi akışından bir mantıksal işin sonunu belirleyebilen ve tek bir girdi dosyasından birden fazla iş oluşturabilen sunucular için) tek bir sürekli alma işlemi yapılabilir (TIP kart okuyucusundan olduğu gibi). Bu durum, belirli bir sunucuya yönelik bir "sıcak" kart okuyucu oluşturur ve TELNET bağlantısı bir "iş izleyicisi" olarak görev yapar. Çıktı her zaman bağlantı başına iş bazında çıktı soketine aktarıldığından, bu "sıcak" okuyucudan gelen çıktı hazır olduğunda bir "sıcak" yazıcıya geliyormuş gibi görünür. Daha karmaşık ana bilgisayarlar için başka bir olasılık, bir RJE Kullanıcı-sürecini bir kart okuyucuya bağlamak ve bir lider kontrol kartından talimatlar alarak uygun ana bilgisayara uygun oturum açma ve girdi alma komutlarıyla bir RJE kontrol TELNET’inin açılmasını sağlamaktır. Bu kart okuyucu, insan kullanıcıya bir Ağ "ana bilgisayar" kart okuyucusu gibi görünür. Bu RJE Kullanıcı-sürecinin ayrıntıları bu protokolün kapsamı dışındadır.
GENEL ÖZELLİKLER
Kullanıcı — Gerçek bir terminalde bulunan bir insan kullanıcı ya da bir işin uzaktan gönderilmesini sağlayan komut kontrol akışını sağlayan bir süreç Kullanıcı olarak adlandırılır. Bir süreç kullanıcısının talimatlarını alma yöntemi bu protokolün kapsamı dışındadır.
Kullanıcı TELNET’i — Kullanıcı, komutlarını Ağ üzerinden Ağ Sanal Terminali kodu ile, Kullanıcının Ana Bilgisayarındaki bir Kullanıcı TELNET süreci aracılığıyla iletir. Bu Kullanıcı TELNET süreci, istenen RJE-sunucu Ana Bilgisayarındaki standart "RJE logger" soketine (soket 5) ICP aracılığıyla etkinliğini başlatır.
RJE-sunucu TELNET’i — RJE-sunucu süreci, komut akışını TELNET kanalı üzerinden alır ve yanıt akışını sunucu ana bilgisayardaki bir RJE-sunucu TELNET süreci aracılığıyla gönderir. Bu süreç, "RJE logger" soketinde ICP’yi dinlemeli (ve uygun ICP soket kaydırmasını gerçekleştirmelidir).
TELNET Bağlantısı — RJE mekanizması için komut ve yanıt akışları, geçerli NWG TELNET protokolüne göre tam olarak tanımlanmış özelliklere sahip özel bir sokete yapılan TELNET-benzeri bir bağlantı üzerinden gerçekleştirilir.
RJE-Sunucu — RJE-Sunucu süreci, Uzaktan Toplu İş Girişi hizmeti sağlayan Ana Bilgisayarda bulunur. Bu süreç, RJE-Sunucu TELNET’inden girdi alır, "oturum açma" yordamı aracılığıyla erişimi denetler, girdi iş dosyalarını alır, işleri toplu sistem tarafından yürütülmek üzere kuyruğa alır, durum sorgularına yanıt verir ve iş çıktısı dosyaları hazır olduğunda bunları iletir.
Kullanıcı FTP — Tüm girdi ve çıktı dosyaları, RJE-sunucu sürecinin kendi inisiyatifiyle ve onun denetimi altında aktarılır. Bu dosyalar, belirli bir Ana Bilgisayar/sokete Bağlantı-İsteği yoluyla doğrudan aktarılabilir ya da Dosya Aktarım Protokolü aracılığıyla aktarılabilir. İkinci yöntem kullanıldığında, RJE-sunucu, aktarımı gerçekleştirmek için yerel Kullanıcı FTP süreci aracılığıyla hareket eder. Bu süreç, yabancı ana bilgisayardaki "FTP Logger"’a etkin bir Bağlantı-İsteği ile etkinliğini başlatır.
Sunucu FTP — RJE-sunucudan uzak bir ana bilgisayardaki bu süreç, Kullanıcı FTP’den gelen bir ICP’yi dinler ve ardından Kullanıcı FTP’den gelen komutlara göre uygun dosya aktarımını gerçekleştirir.
FTP — RJE dosyaları için Dosya Aktarım Protokolü kullanıldığında, geçerli NWG FTProtocol tarafından tam olarak tanımlandığı şekilde standart FTP mekanizması kullanılır.
RJE Komut Dili — RJE sistemi, Kullanıcıdan TELNET bağlantısı üzerinden gelen bir komut akışı ile denetlenir; bu akış, kullanıcının kimliğini (oturum açma), iş girdi dosyasının kaynağını, durumu, iş durumunun veya çıktı dağıtımının değiştirilmesini belirtir. Çıktı dağıtımını etkileyen ek komutlar iş girdi dosyasına dâhil edilebilir. Bu komut dili, bu protokolün ilerleyen bir bölümünde açıkça tanımlanmıştır.
RJE Komut Yanıtları — Kullanıcıdan TELNET üzerinden gelen her komut girdisi ve belirli diğer koşullar, RJE-sunucudan Kullanıcıya TELNET bağlantısı üzerinden bir yanıt iletisini gerektirir. Bu iletiler, hem insan Kullanıcılar hem de Kullanıcı süreçleri tarafından yorumlanmasını kolaylaştırmak için standartlaştırılmış bir biçimde düzenlenmiştir. Bu protokolün izleyen bir bölümü yanıt iletilerini tanımlar.
TELNET BAĞLANTISI ÜZERİNDEN RJE KOMUTLARI
GENEL KURALLAR
Tüm komutlar, standart TELNET "crlf" ile sonlandırılmış tek bir girdi satırı içinde yer alacaktır. Satır, kullanıcının istediği herhangi bir uzunlukta olabilir (açıkça, fiziksel bir terminal satır genişliği ile sınırlı değildir). "cr" ve "lf" karakterleri, açıkça "crlf" sırası dışında RJE-sunucu tarafından yok sayılacak olup, yerel terminal denetimi için gerektiği şekilde kullanılabilir.
Tüm komutlar tanınan bir komut adıyla başlar ve ardından tanınan sözdizimsel öğe dizgeleri ile serbest biçimli değişken dizgeleri (kullanıcı kimliği, yol adları vb. için) içerebilir. Tanınan sözcükler, alfasayısal dizgelerden (harfler ve rakamlar) veya noktalama işaretlerinden oluşur. Tanınan alfasayısal dizge öğeleri, birbirlerinden ve tanınmayan dizgelerden en az bir boşluk ya da sözdizimsel olarak izin verilen bir noktalama işareti ile ayrılmalıdır. Diğer boşluklar, herhangi bir sözdizimsel öğeden önce veya sonra serbestçe kullanılabilir. OUT ve CHANGE dışındaki tüm komutlarda komut adından sonraki "=" isteğe bağlıdır.
Tanınan alfasayısal dizgeler, büyük harfler veya küçük harfler herhangi bir karışımda içerebilir ve sözdizimsel olarak ayrım yapılmaz. Tanınmayan dizgeler, sonradan dizgeyi kullanan ana bilgisayar aksi yönde tanımlamadıkça, büyük/küçük harf ayrımı tamamen korunarak, sunulduğu biçimde kullanılacaktır.
İki tür tanınmayan dizge vardır: son ve gömülü. Son dizgeler, bir komutun son sözdizimsel öğesi olarak görünür ve girdi akışındaki bir sonraki boşluk olmayan karakterden başlayarak "crlf"’den önceki son boşluk olmayan karaktere kadar ayrıştırılır.
Gömülü dizgeler, OUT, CHANGE ve ALTER komutlarındaki "job-id" ve "job-file-id" alanlarını içerir. Şu anda bu alanlar, yalnızca sunucu ana bilgisayar tarafından tanınmaları gerektiğinden ve umarız kendi iş kimliklerini ve dosya adlarını tanıyabildiğinden, sınırlandırılmadan bırakılacaktır.
SÖZDİZİMİ
Aşağıdaki komut açıklamaları, BNF-benzeri bir sözdizimi ile verilmiştir. Parantez içindeki adlar, izleyen sözdizimsel denklemlerde genişletilen terminal olmayan sözdizimsel öğelerdir. Her denklemde, tanımlanan ad ::= işaretinin solunda, eğik çizgiler / ile ayrılmış alternatif tanımlar kümesi ise sağında yer alır. (host-file) ve (disp) için olan denklemler, tanımlarında / ( ) karakterlerini açıkça kullanır. Bu durumlarda tırnak işaretleri tanımın bir parçası değildir; parçası olan gerçek metni çevreler.
USER
USER = (user-id)
Bu komut, yeni bir TELNET bağlantısı üzerinden gönderilen ilk komut olmak zorundadır. Bu niteliğiyle bir "oturum açma" dizisini başlatır. Bu komuta verilen yanıt aşağıdakilerden biridir:
- Kullanıcı kodu hatalı.
- Parolayı girin (kullanıcı kodu uygunsa)
- Oturum açma tamam, devam edin. (parola gerekmiyorsa)
Kullanıcı, Kullanıcıyı değiştirmek için herhangi bir zamanda başka bir USER komutu gönderebilir. Bundan sonraki girdiler yeni kullanıcıya kaydedilecektir. Bir sunucu, mevcut durumunda (örneğin girdi dosyası aktarımı sırasında) yeni bir USER komutunu işleyemiyorsa bunu reddedebilir; ancak protokol, önceki etkinliği değiştirmeden USER komutuna her zaman izin verir. Yanlış bir sonraki USER komutu veya onu izleyen PASS komutu, hata yanıtı ile yok sayılacak ve özgün Kullanıcı oturumda kalacaktır.
Başlangıçtaki USER/PASS komutları sunucu tarafından belirlenen bir süre içinde tamamlanmazsa, sunucunun TELNET bağlantısını kapatmasına izin verilir.
"Oturum açmış" Kullanıcının, dosya aktarımı veya iş yürütmede kullanılan kullanıcı kimliği olması ne gerekli ne de ima edilmektedir; yalnızca komut akışını göndereni tanımlar. Sunucular, Kullanıcı kimliği ile iş-yürütme-kullanıcısı arasındaki ilişkiyi İş veya Çıktı değiştirme komutları için kendi kurallarına göre belirleyecektir.
Başarılı bir "oturum açma" her zaman önceki tüm Girdi veya Çıktı varsayılan parametrelerini (INID vb.) temizler.
PASS
PASS = (password)
Bu komut, bir USER komutunu hemen izler ve "oturum açma" yordamını tamamlar. Belirli bir Sunucu parola gerektirmese ve USER komutundan sonra zaten "oturum açma tamam" bildirmiş olsa bile, her Sunucu bir PASS komutuna izin vermeli (ve gerekirse yok saymalı) ve oturum açma tamamlandığında bunu bir "oturum açma tamam" ile onaylamalıdır.
BYE
BYE
Bu komut bir Kullanıcıyı sonlandırır ve girdi aktarımı sürmüyorsa TELNET bağlantısını kapatır. Girdi sürüyorsa, bağlantı sonuç yanıtı için açık kalır ve ardından kapanır. Bu ara süre boyunca yeni bir USER komutu (ve başka hiçbir komut) kabul edilebilir.
TELNET bağlantısının beklenmedik şekilde kapanması, sunucunun ABORT ve BYE’nin etkili eylemini uygulamasına neden olur.
INID / INPASS
INID = (user-id)
INPASS = (password)
Belirtilen Kullanıcı kimliği ve Parola, girdi dosyasını almak için yapılan Dosya Aktarım isteğinde gönderilecektir. Bu parametreler Sunucu tarafından başka hiçbir şekilde kullanılmaz. Bu komut görünmezse USER/PASS parametreleri kullanılır.
INPATH / INPUT
INPATH = (pathname)
INPUT = (pathname)
INPUT
NOT: Aşağıdaki sözdizimi çıktı için de (pathname) olarak kullanılacaktır.
(pathname) ::= (host-socket) / (host-file)
(host-socket) ::= (host),(socket) / (socket)
(host) bölümünün olmaması Kullanıcı-site ana bilgisayarını ifade eder
(host) ::= (decimal-integer) / (standard-host-name)
(socket) ::= (decimal-integer) / PORT (decimal-integer)
(decimal-integer) açık soketi ifade eder, alt bit
yön için uygun şekilde ayarlanacaktır
PORT, bir TIP için belirtilen port-soketlerini ifade eder
Tip-Socket = Port * 2**16 + (2 veya 3)
(host-file) ::= (host)(attributes)"/"(file-name)
(attributes) ::= (empty) / : (transmission)(code)
(transmission) ::= (empty) / T / A / N
(empty) varsayılanı ifade eder ki bu
Girdi dosyaları için N
Çıktı dosyaları için A’dır
T, yeni satır için gömülü "crlf",
yeni sayfa için "ff" içeren TELNET-benzeri kodlamayı belirtir
N, kayıt işaretleri olan ancak başka
satırbaşı denetimi olmayan FTP bloklu aktarımı belirtir
A, ASA satırbaşı denetimi olan FTP bloklu
kayıtları belirtir (görüntünün 1. sütunu form denetimidir)
(code) ::= (empty) / E
(empty) NVT ASCII kodunu belirtir
E, EBCDIC’i belirtir (TE’ye izin verilmez)
(file-name) ::= (dosyanın bulunduğu sitedeki
FTP Sunucusu tarafından tanınan herhangi bir dizge)
(pathname) sözdizimi, girdi veya çıktı için belirli bir dosya kaynağını ya da hedefini belirtmekte kullanılan genel RJE mekanizmasıdır. (host-socket) biçimi kullanılırsa, RJE-Sunucu TELNET-benzeri ASCII kullanarak adlandırılmış sokete doğrudan aktarım yapar. (host-file) biçimi kullanılırsa, RJE-sunucu gerçek aktarımı yapmak için yerel FTP-kullanıcı sürecini çağırır. Bu kipteki veri akışı ya TELNET-benzeri ASCII ya da bloklu kayıtlardır.
ASA satırbaşı denetimi için 1. sütun kullanılır. A kipi girdide izinli olmakla birlikte (1. sütun silinir), olağan kip varsayılan N olacaktır. Çıktı varsayılanı A, her kaydın ilk karakterinde satırbaşı denetimi sağlar ("boşluk" = tek boşluk, "1" = yeni sayfa vb.); isteğe bağlı N kipi ise yalnızca veriyi aktarır (kart deliciye olduğu gibi vb.).
(file-name), RJE-sunucu tarafından saklanan ve uygun dosyaların alınması ya da depolanması için FTP-sunucusuna FTP üzerinden geri gönderilen, keyfi bir tanınmayan dizgedir.
INPATH veya INPUT komutları, eğer sağlanmışsa belirtilen (pathname)’i önce saklar ve ardından INPUT komutu girdiyi başlatır. INPATH adı, daha sonraki bir girdi için yol adı belirtmekte kullanılabilir ve yol adı olmadan verilen INPUT komutu, daha önce belirtilmiş bir yol adı üzerinden girdiyi başlatır. Önceden hiçbir (pathname) belirtilmemişse, yalın bir INPUT "crlf" komutu geçersizdir.
ABORT
ABORT
Bu komut, sürmekte olan herhangi bir girdi alma işlemini durdurur, daha önce alınmış kayıtları atar ve alma bağlantısını kapatır.
Not: Parametreli ABORT bir Çıktı İletimi denetimidir.
OUTUSER / OUTPASS
OUTUSER = (user-id)
OUTPASS = (password)
Belirtilen Kullanıcı kimliği ve Parola, çıktı dosya(lar)ını göndermek için yapılan Dosya Aktarım isteğinde gönderilecektir. Bu parametreler Sunucu tarafından başka hiçbir şekilde kullanılmaz. Bu komut görünmezse USER/PASS parametreleri kullanılır.
OUT
OUT (out-file) = (disp)(pathname)
- (out-file) ::= (empty) / (job-file-id)
(empty), işin birincil yazdırma dosyasını ifade eder - (job-file-id) ::= Sunucu tarafından tanındığı şekilde, işten üretilen belirli bir çıktı dosyasını temsil eden dizge
- (disp) ::= (empty) / "(H)" / "(S)" / "(D)"
- (empty), İlet ve sonra at anlamına gelir
- (H), Yalnızca Tut, iletme anlamına gelir
- (S), İlet ve Sakla anlamına gelir
- (D), İletmeden at anlamına gelir
Not: Parantezler yukarıdaki öğelerin bir parçasıdır.
- (pathname) INPUT komutuna bakınız
Bu komut, iş tarafından üretilen çıktı dosya(lar)ının durumunu belirtir. Belirtilmeyen dosyalar varsayılan olarak yalnızca Hold durumunda olacaktır. OUTUSER, OUTPASS ve OUT komutları, etkili olabilmeleri için INPUT komutundan önce belirtilmelidir. Bu komutlar, bu RJE-TELNET bağlantısı üzerinden bu USER tarafından gönderilen sonraki tüm işleri etkileyecektir. Belirli bir iş, girdi dosyasının başındaki NET kontrol kartları aracılığıyla bu komutları geçersiz kılabilir.
Çıktı durumu bu OUT komutu veya bir NET OUT kartı ile belirtildiğinde, bilgi nihai çıktı durumuna kadar iş ile birlikte saklanır ve CHANGE komutu ile değiştirilebilir.
OUTPUT RE-ROUTE
CHANGE (job-id)(out-file) = (disp)(pathname)
Bu komut, iş gönderimi sırasında sağlanan çıktı durumunu değiştirir. (job-id), RJE-sunucusu tarafından tanınabilir varsayılır; sunucu bu USER’ın belirtilen işi değiştirme yetkisine sahip olup olmadığını doğrulayabilir. İş tanımlandıktan sonra, diğer bilgiler özgün OUT komutu ile aynı sözdizimi ve anlamsal kurallara sahiptir. CHANGE komutu, gönderim sırasında belirtilmemiş bir job-file-id için de belirtilebilir ve özgün bir OUT komutu ile aynı etkiye sahiptir.
OUTPUT CONTROLS DURING TRANSMISSION
(command)(count)(what)
- (command) ::= RESTART / RECOVER / BACK / SKIP / ABORT / HOLD
- İletimi yeniden başlat (yeni RFC, vb.)
- Recover, iletimi son FTP Restart-marker-reply noktasından yeniden başlatır (bkz. FTP)
- Çıktıyı "count" blok geri al
- Çıktıyı "count" blok ileri atla
- Çıktıyı iptal et, at
- İptalden sonra çıktıyı Hold durumunda tut
- (count) ::= (boş) / (ondalık-tamsayı)
(boş) tanımlı olduğu yerde 1 anlamına gelir - (what) ::= @(pathname) / (job-id)(job-file-id)
- (pathname), INP komutundaki gibidir
- (job-id) ::= INP tamamlandığında sunucu tarafından sağlanan, sunucu tarafından tanınan iş tanımlayıcısı
- (job-file-id) ::= sunucu tarafından tanınan dosya tanımlayıcısı; yoksa belirtilen işin birincil yazıcı çıktısı
Bu komutlar kümesi, devam eden veya yakın zamanda iptal edilmiş çıktı iletimini değiştirir. Çıktı iletimi tamamlanmadan kesilirse, RJE-sunucusu dosyanın (disp) değeri Transmit-and-discard ise tüm dosyayı yeniden göndermeye çalışacak ya da (disp) değeri (S) Transmit-and-Save ise daha ileri USER kontrolü için dosyayı Hold durumunda tutacaktır.
İletim sırasında, Transmit-and-Save işleminin Save aşamasında veya yalnızca Hold durumundaki bir dosya için, yukarıdaki komutlar iletimi denetlemek için kullanılabilir. (what) için @(pathname) biçimine yalnızca iletim fiilen devam ediyorsa izin verilir.
Dosyanın durumu komutla tutarsız ise, komut geçersizdir ve yanıtla birlikte yok sayılır.
STATUS
STATUS
STATUS (job-id)
Bu komutlar sırasıyla RJE-sunucusunun veya belirli bir işin durumunu ister. Status yanıtının bilgi içeriği siteye bağlıdır.
CANCEL / ALTER
CANCEL (job-id)
ALTER (job-id) (siteye bağlı seçenekler)
Bu komutlar gönderilmiş bir işin seyrini değiştirir. CANCEL, işin derhal sonlandırılacağını ve tüm çıktının atılacağını belirtir. ALTER, iş önceliğinin değiştirilmesi, işlem sınırları, iptal etmeden sonlandırma vb. gibi sisteme bağlı seçenekleri sağlar.
OP
OP (herhangi bir dize)
Belirtilen dize, takip eden herhangi bir iş Sunucunun batch kuyruğundan hizmet almaya başladığında Sunucu sitesi operatörüne gösterilecektir. Bu komut genellikle girdi dosyasında bir NET OP kontrol kartı olarak görünür, ancak bir TELNET komutu da olabilir. OP "crlf" komutu (metin sağlanmadan) ile tüm işler için geçerli bir komut olmaktan çıkarılır.
RJE CONTROL CARDS IN THE INPUT FILE
Bazı RJE komutları, girdi dosyasının başında yer alan kontrol kartlarıyla belirtilebilir. Bu kontroller görünürse, RJE-TELNET bağlantısı üzerinden verilen aynı komutlara göre öncelik kazanır ve yalnızca bu belirli işi etkiler.
Tüm bu RJE kontrol kartları, işin girdi dosyasının ilk kayıtları olarak yer almalıdır. Hepsinde 1–2 sütunlarında NET kontrol sözcüğü bulunur. 1–3 sütunlarında NET bulunmayan ilk kartla karşılaşıldığında bu kontrollerin taranması durur.
Kontrol komutları tek tek kayıtlarda yer alır ve kayıt sonu ile (genellikle 80 sütunluk bir kart görüntüsü) sonlandırılır. Bir sonraki kaydın 1–4 sütunlarında NET+ görünmesiyle devam etmeye izin verilir. Bir sonraki kaydın 5. sütunu, önceki kaydın son karakterini hemen izler.
NET OUTUSER = (userid)
NET OUTPASS = (password)
NET OUT (out-file) = (disp)(pathname)
NET OP (herhangi bir dize)
Ayrıntılar için karşılık gelen TELNET komutlarına bakınız. NET OUTUSER ve NET OUT kontrolleri tarafından izin verilen, TELNET bağlantısından mümkün olmayan bir seçenek, farklı OUT’lar için farklı OUTUSER’ların belirtilebilmesidir; çünkü TELNET yalnızca başlangıçta bir OUTUSER saklar ve sağlar, ancak kontroller her OUT kontrolüyle karşılaşılmadan önce OUTUSER’ları değiştirebilir.
RJE USE OF FILE TRANSFER PROTOCOL
Çoğu TIP olmayan dosya, RJE-sunucusuna veya sunucudan FTP süreci aracılığıyla aktarılacaktır. RJE-sunucusu, yerel FTP-kullanıcısını çağırarak istenen aktarımın Host, File-pathname, User-id, Password ve Mode bilgilerini sağlar. FTP-kullanıcısı daha sonra belirtilen ana makinedeki FTP-sunucu karşılığına bağlanır ve bir aktarım yolu kurar. Veriler daha sonra Sunucudaki RJE-FTP arayüzü üzerinden, Ağ üzerinden, yabancı FTP-sunucusundan veya ona doğru ve ardından yabancı ana makinenin dosya depolama alanındaki belirtilen File-pathname’e veya oradan akacaktır.
Çıktı dosyalarında, file-pathname yabancı ana makine tarafından bir yazıcıya yönlendirme talimatları olarak tanınabilir ya da dosya basitçe depolanabilir. Bir User-RJE süreci, kendi Server-FTP’si tarafından bir yazıcıya yönlendirme olarak tanınan varsayılan bir çıktı (pathname) sağlayabilir.
RJE-Server/User-FTP arayüzünün birçok ayrıntısı siteye bağlı olsa da, RJE-sunucuları tarafından standart biçimde kullanılacak birkaç FTP seçeneği vardır:
- Aktarılacak her dosya için yeni bir FTP bağlantısı başlatılacaktır. Bağlantı, RJE Kullanıcısı tarafından sağlanan User-id (OUTUSER veya INUSER) ve Password ile açılacaktır.
- Veri bayt boyutu 8 bit olacaktır.
- FTP Type, Structure ve Mode parametreleri, RJE aktarım yönü (I/O), (TRANS) ve Kullanıcı tarafından sağlanan (CODE) seçenekleri tarafından belirlenir:
| I/O | TRANS | CODE | FTP TYPE | STRUCTURE | MODE |
|---|---|---|---|---|---|
| I* | N | – | Ascii | R | Hasp |
| I | N | E | Image | R | Hasp |
| I | T | – | Ascii | F | Ascii |
| I | A | – | Ascii | R | Hasp |
| I | A | E | Image | R | Hasp |
| O* | A | – | Ascii-print | R | Hasp |
| O | A | E | Ebcdic-print | R | Hasp |
| O | N | – | Ascii | R | Hasp |
| O | N | E | Image | R | Hasp |
| O | T | – | Ascii-print | F | Ascii |
Not: I ve O* varsayılan durumlardır.*
- Kullanılan servis komutları, girdi için Retrieve ve çıktı için Append (oluşturma ile) olacaktır. FTP pathname, RJE Kullanıcısı tarafından sağlanan (file-name) olacaktır.
- Hasp biçimindeki çıktılarda, RJE-Sunucu sitesindeki User-FTP periyodik aralıklarla (örneğin her 100 satırda bir) Restart-marker gönderecek ve dosya ile birlikte en son Restart-marker-reply’yi hatırlayacaktır. Dosya aktarımı tamamlanmaz ve (disp) değeri (S) ise, dosya Kullanıcı müdahalesi beklenerek Hold durumunda tutulacaktır. Kullanıcı daha sonra RECOVER komutunu kullanarak son hatırlanan Restart-marker-reply noktasından bir FTP yeniden başlatması gerçekleştirebilir.
- FTP Abort komutu, RJE ABORT ve CANCEL komutları için kullanılacaktır.
Bir RJE-Sunucu sitesinde kullanılan FTP komutlarının özel biçimi ve hangi sırayla kullanıldıkları bu protokolde belirtilmeyecektir.
FTP tarafından karşılaşılan hatalar üç kategoriye ayrılır:
(a) erişim hataları veya depolama alanı yok hatası;
(b) komut biçimi hataları; ve
(c) aktarım başarısızlığı hataları.
Komutlar RJE-Sunucu süreci tarafından oluşturulduğundan, bir hata bir programlama problemidir ve dikkat için kaydedilmeli, durum mümkün olan en güvenli şekilde ele alınmalıdır. Girdideki aktarım veya erişim başarısızlığı etkili bir ABORT’a ve kullanıcı bildirimine neden olur. Çıktıdaki aktarım başarısızlığı, (disp) değerine bağlı olarak RESTART veya Save’e neden olur (bkz. OUT komutu). Çıktıdaki erişim başarısızlığı bir sorundur; çünkü Kullanıcı erişilebilir olmayabilir. Kullanıcı sorgulama yaparsa yanıtlanmak üzere bir durum yanıtı kuyruğa alınmalıdır; (disp) = (S) olan bir dosya Hold durumunda tutulmalıdır; ve (disp) = (boş) olan transmit-and-discard dosyası geçici olarak tutulmalı ve makul bir süre sonra talep edilmezse atılmalıdır.
REPLIES OVER THE TELNET CONNECTION
TELNET komutlarının her birinin girilmesi de dahil olmak üzere, RJE-sunucusunun her eylemi TELNET bağlantısı üzerinden Kullanıcıya bildirilir. Bu RJE-sunucu yanıtları, insan veya süreç yorumlaması için biçimlendirilmiştir. Bir boşluk ve ardından mesajın metinsel açıklaması gelen üç basamaklı sayısal bir koddan oluşurlar.
Sayısal kodlar, RJE dışındaki diğer protokolleri (örneğin FTP) kapsayacak şekilde gelecekte genişletme için gruplar halinde atanmıştır. Sayısal kod, süreçler tarafından kolay yorumlama için tasarlanmıştır. Kodun üç basamağı aşağıdaki şekilde yorumlanır:
a) Birinci Basamak — Yanıt Türü
- 000: Sunucunun sisteminin bazı durumlarını Kullanıcıyı bilgilendirmek için gönüllü olarak yayımlanan, tamamen bilgilendirici yanıtlar.
- 100: Belirli bir durum sorgusuna verilen yanıtlar. Bunlar hem bilgi hem de durum isteğinin alındığının onayı olarak hizmet eder.
- 200: Önceki bir komut veya isteğin olumlu onayı. 200 yanıtı, başka bir yorum gerektirmeyen komutlar için genelleştirilmiş bir "ok" anlamına gelir. Diğer 2xx yanıtları, belirli başarılı eylemler için tanımlanmıştır.
- 300: Şu ana kadar sağlanan bilgi eksiktir. Büyük bir sorun yoktur, ancak sağlanan girdiyle faaliyet ilerleyemez.
- 400: Başarısız yanıt. Bir istek doğru belirtilmiştir ancak doğru şekilde tamamlanamamıştır. Daha ileri denemeler Kullanıcı komutları gerektirecektir.
- 500: Yanlış veya geçersiz komut. Komut veya parametreleri sözdizimsel açıdan geçersiz ya da eksiktir veya komut önceki bir komutla tutarsızdır. Söz konusu komut tamamen yok sayılmıştır.
- 600–900: Genişleme için ayrılmıştır.
b) İkinci Basamak — Yanıtın Konusu
- x00–x29: Diğer konulara atanamayan, genel amaçlı yanıtlar.
- x30: Birincil erişim. Bu yanıtlar bir Sunucu hizmetine (RJE, FTP vb.) giriş yapma girişimini ifade eder.
x40 İkincil erişim. Birincil Sunucu, ikincil bir hizmete erişme yeteneği hakkında yorum yapmaktadır (RJE’nin uzak bir FTP hizmetine giriş yapması gerekir).
x50 FTP sonuçları.
x60 RJE sonuçları.
x70–x99 Genişleme için ayrılmıştır.
c) Yanıt Kodunun Son Basamağı
Son basamak belirli bir mesaj türünü belirtir. Kod bir otomasyon süreci tarafından yorumlanmak üzere tasarlandığından, bir yanıtın her varyasyonunun benzersiz bir numaraya sahip olması gerekli değildir; yalnızca temel anlamın benzersiz bir numarası olması yeterlidir. Bir yanıtın metni, yanıtın özel nedenini insan Kullanıcıya açıklayabilir.
Sunucudan gelen her TELNET satırı ("crlf" ile sonlandırılan) eksiksiz bir yanıt mesajı olarak tasarlanmıştır. Bir yanıtın metnini takip eden satırlara devam ettirmek gerekirse, bu devam yanıtları üç boşluktan oluşan özel yanıt kodunu içerir.
RJE ile İlgili Atanmış Yanıt Kodları
- 000 Genel bilgilendirme mesajı (günün saati vb.)
- 030 Sunucu kullanılabilirlik bilgisi
- 050 FTP yorumu veya kullanıcı bilgisi
- 060 RJE veya Batch sistemi yorumu veya bilgisi
- 100 Sistem durumu yanıtı
- 150 Dosya durumu yanıtı
- 151 Dizin listeleme yanıtı
- 160 RJE sistemi genel durum yanıtı
- 161 RJE iş durumu yanıtı
- 200 Son komut sorunsuz alındı
- 201 İstenildiği gibi bir ABORT etkinliği sonlandırdı
- 202 ABORT isteği yok sayıldı, devam eden etkinlik yok
- 203 İstenen İletim Denetimi yürürlüğe girdi
- 230 LOG-on tamamlandı
- 231 Log-off tamamlandı, hoşça kalın.
- 232 Log-off kaydedildi, aktarım tamamlandığında bitecek
- 240 Dosya aktarımı başladı
- 250 FTP dosya aktarımı sorunsuz başladı
- 251 FTP Restart-marker-reply
- Metin:
MARK yyyy = mmmm - burada
yyyyveri akışı işaret değeri (sizinki) - ve
mmmmalıcının eşdeğer işareti (benimki)
- Metin:
- 252 FTP aktarımı sorunsuz tamamlandı
- 253 Yeniden adlandırma tamamlandı
- 254 Silme tamamlandı
- 260 İş (job-id) işlenmek üzere kabul edildi
- 261 İş (job-id) tamamlandı, çıktı aktarımı bekleniyor
- 262 İş (job-id) istendiği gibi iptal edildi
- 263 İş (job-id) istendiği gibi (status) durumuna değiştirildi
- 300 Bağlantı karşılama mesajı, girdi bekleniyor
- 301 Geçerli komut tamamlanmadı
- ("crlf" yoksa, uygun bir gecikmeden sonra gönderilebilir)
- 330 Parolayı girin
- (girdi gizleme kipiyle gönderilebilir)
- 360 INPUT hiçbir zaman bir INPATH belirtmedi
- 400 Bu hizmet uygulanmamıştır
- 401 Bu hizmet şu anda giriş kabul etmiyor, hoşça kalın.
- 430 Giriş süresi veya deneme sayısı aşıldı, hoşça kalın.
- 431 Giriş başarısız, kullanıcı ve/veya parola geçersiz
- 432 Kullanıcı bu hizmet için geçerli değil
- 434 Operatör eylemiyle çıkış zorlandı, lütfen siteyi arayın
- 435 Sistem problemi nedeniyle çıkış zorlandı
- 436 Hizmet kapatılıyor, hoşça kalın.
- 440 RJE, girdi aktarımı için uzak FTP’ye giriş yapamadı
- 441 RJE, belirtilen girdi dosyasına FTP üzerinden erişemedi
- 442 RJE, (host-socket) girdi bağlantısı kuramadı
- 443 RJE, çıktı teslimi için uzak FTP’ye giriş yapamadı
- 444 RJE, çıktı için verilen dosya alanına erişemedi
- 445 RJE, (host-socket) çıktı bağlantısı kuramadı
- 450 FTP: Adı verilen dosya mevcut değil (veya erişim reddedildi)
- 451 FTP: Adı verilen dosya alanına SİZ erişemiyorsunuz
- 452 FTP: Aktarım tamamlanmadı, veri bağlantısı kapandı
- 453 FTP: Aktarım tamamlanmadı, yetersiz depolama alanı
- 460 İş girdisi tamamlanmadı, ABORT uygulandı
- 461 İş biçimi işleme için kabul edilebilir değil, iptal edildi
- 462 Daha önce kabul edilen iş gizemli biçimde kayboldu
- 463 Daha önce kabul edilen iş tamamlanmadı
- 464 STATUS, CANCEL, ALTER, CHANGE veya İletim Denetimi tarafından başvurulan job-id bilinmiyor (veya erişim reddedildi)
- 465 İstenen Değişiklik belirtilen iş için izinli değil
- 466 (job-id) için teslim edilemeyen, talep edilmeyen çıktı atıldı
- 500 Son komut satırı tamamen tanınmadı
- 501 Son komutun sözdizimi yanlış
- 502 Son komut eksik, parametreler yok
- 503 Son komut geçersiz, yasa dışı parametre kombinasyonu
- 504 Son komut geçersiz, şu anda eylem mümkün değil
- 505 Son komut, önceki komut(lar)la yasa dışı biçimde çelişiyor
- 506 İstenen eylem bu Sunucu tarafından uygulanmamıştır
Sequencing of Commands and Replies
Kullanıcı ile Sunucu arasındaki iletişimin dönüşümlü bir diyalog olması amaçlanmıştır. Buna göre, Kullanıcı bir RJE komutu gönderir ve Sunucu birincil yanıt olarak bir istemle karşılık verir. Kullanıcı, ek komutlar göndermeden önce bu ilk başarı veya başarısızlık yanıtını beklemelidir.
İkinci bir yanıt türü, Kullanıcı komutlarına göre eşzamansız olarak Sunucu tarafından gönderilir. Bu yanıtlar, INPUT komutunun neden olduğu bir iş gönderiminin ilerleyişi hakkında rapor verir ve bu nedenle söz konusu komutun ikincil yanıtlarıdır.
Sunucu "yanıtlarının" son sınıfı ise tamamen bilgilendirici niteliktedir ve herhangi bir zamanda gelebilir. Bu "yanıtlar" aşağıda kendiliğinden (spontaneous) olarak listelenmiştir.
Komut–Yanıt Eşleştirme Tablosu
| Komut | Başarı | Başarısızlık |
|---|---|---|
| USER | 230, 330 | 430, 431, 432, 500–505 |
| PASS | 230 | 430, 431, 432, 500–505 |
| BYE | 231, 232 | 500–505 |
| INID | 200 | 500–505 |
| INPASS | 200 | 500–505 |
| INPATH | 200 | 500–505 |
| INPUT | 240 | 360, 440–442, 500–505 |
| sec. Input retrieval | 260 | 460, 461 |
| sec. Job execution | 261 | 462, 463 |
| sec. Output Transmission | — | 443, 444, 445, 446 |
| ABORT (input) | 201, 202 | 500–505 |
| OUTUSER | 200 | 500–505 |
| OUTPASS | 200 | 500–505 |
| OUT | 200 | 500–505 |
| CHANGE | 200 | 500–505 |
| RESTART / RECOVER / BACK / SKIP / ABORT (output) / HOLD | 203 | 464, 500–506 |
| STATUS | 1xx | 464, 500–505 |
| CANCEL | 262 | 464, 500–506 |
| ALTER | 263 | 464, 465, 500–506 |
| OP | 200 | 500–505 |
| Spontaneous | 0xx, 300, 301 | 434–436 |
Not: Kartlar üzerinde görünen komutlar için 200 gönderilmez, ancak 500–505 hataları "eşzamansız" olarak gönderilebilir.
Tipik RJE Senaryoları
1. HOSTX’e Sıcak Kart Okuyucu İsteyen TIP Kullanıcısı
a) TIP kullanıcısı, HOSTX soket 5’e bir TELNET bağlantısı açar
b) TELNET üzerinden RJE’ye gönderilen komutlar:
- USER=myself
- PASS=dorwssap
- OUT=PORT 7
- INPUT=PORT 5
c) RJE-sunucusu, Kullanıcının ana makine portu 5’e bağlanır ve okumaya başlar. İş sonu kartı tanındığında, iş çalıştırılmak üzere kuyruğa alınır. Kart okuyucuya olan bağlantı, başka bir iş için daha fazla girdi alınabilmesi amacıyla açık kalır.
d) İlk iş tamamlanır. RJE-sunucusu tarafından Kullanıcının ana makine portu 7’ye bir bağlantı kurulur ve çıktı bir NVT akışı olarak gönderilir.
e) Herhangi bir zamanda, c) adımında başka bir deste ile devam edilir.
2. Tek-İşlik Kart Okuyuculu TIP
a) ile d) arası aynıdır, ancak Kullanıcı desteden sonra Okuyucuyu kapatır
e) Çıktı tamamlanır ve yazıcı bağlantısı kapanır.
f) c) adımı tamamlandıktan sonra herhangi bir zamanda INPUT yazılabilir ve c) adımından başlayarak başka bir iş girilir.
3. HOSTA Kullanıcısı HOSTC’de İş Çalıştırır, Girdi HOSTB’den
a) Kullanıcı, RJE için HOSTC soket 5’e TELNET ile bağlanır:
- USER=roundabout
- PASS=aaabbbc
- OUTUSER=roundab1
- OUT=:E/.sysprinter
- OUT puncher = (s)HOSTB:NE/my.savepunch
- INUSER=rounder
- INPASS=x.x.x
- INPUT=HOSTB:E/my.jobinput
b) RJE-sunucusu, "rounder" Kullanıcı Kimliği ve "x.x.x" Parolası ile "my.jobinput" adlı dosya için HOSTB’den girdiyi almak üzere FTP kullanır.
c) İş tamamlanır. RJE-sunucusu FTP kullanarak iki dosya gönderir: yazdırma çıktısı, ASA satır kontrolü ile birlikte EBCDIC biçiminde HOSTA’ya ".sysprinter" dosyasına gönderilirken, "puncher" olarak bilinen dosya, satır kontrolü olmadan EBCDIC biçiminde HOSTB’ye "my.savepunch" dosyasına gönderilir.
d) Çıktılar tamamlandığında, HOSTC’deki RJE-sunucusu yazdırma dosyasını atar ancak "puncher" dosyasını saklar.
e) İş gönderiminden sonra çıkış yapmış olan Kullanıcı, çıktısını almış ve HOSTB’deki "my.savepunch" dosyasını kontrol etmiştir. Saklanan kopyayı HOSTC’de silmek için, HOSTC’de RJE’yi yeniden çağırır:
USER=roundabout
PASS=aaabbbcc
ABORT job123 puncher
ya da
CHANGE job123 puncher = (D)