← rfc/
╔══════════════════════════════════════════════════════════════════════════╗
RFC 360 · protokol

ÖNERİLEN UZAKTAN İŞ GİRİŞİ PROTOKOLÜ

Yazar
Kurum
Tarih
Haziran 1972
Durum
Network Working Group Yorum Talebi
Kanal
protokol/

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

  1. 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.

  2. 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.

  3. 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).

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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

  1. 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.

  2. 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.

  3. 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.

  4. İ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ı, 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)

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)

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:

  1. 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.
  2. Veri bayt boyutu 8 bit olacaktır.
  3. 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.*

  1. 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.
  2. 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.
  3. 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ü

b) İkinci Basamak — Yanıtın Konusu

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ı


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:

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:

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: