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

UCSB'de Uzaktan İş Hizmeti

Yazar
Kurum
Tarih
23 Mayıs 1973
Durum
Network Working Group Yorum Talebi
Kanal
protokol/

Network Working Group M. Krilanovich Request for Comments: 477 UCSB NIC: 14922 23 Mayıs 1973 References: RFCs 354, 407, NIC 16306

UCSB'de Uzaktan İş Hizmeti

Giriş

Bu RFC, UCSB'nin RJS'sini kısaca tanımlayan RFC #436'nın devamı niteliğindedir. Bu belge, resmi RJE protokolünün (RFC #407) özünü yeniden ifade eder ve UCSB'nin bu protokolü nasıl uyguladığını ayrıntılı olarak belgeler.

Burada tanımlanan program UCSB'de socket 5 altında kullanılabilir durumdadır ve resmi protokolün bir alt kümesini destekler. Özellikle, giriş dosyasında RJE kontrol kartları için herhangi bir denetim yapılmaz, işler giriş dosyasında gruplanamaz, yalnızca sil ve ilet-ve-sil çıktı dosyası durumları uygulanır, FTP bloklu kipte çıktıda yeniden başlatma işaretçileri gönderilmez ve komutların bir kısmı uygulanmamıştır. Ayrıca, RJS'nin ideal olmaktan uzak olduğu bilinen başka yönleri de vardır. Örneğin, bir iş işlenirken herhangi bir hata algılandığında — örneğin çıktının hedef ana makinesinin çalışmıyor olması gibi — iş terk edilir ve daha sonraki tüm çıktılar silinir. RJS'nin yeniden yazımı yakın gelecekte (yaklaşık altı ay içinde) planlanmıştır ve bu eksikliklerin birçoğu o zamanda giderilecektir. (Daha fazla iyileştirme önerisi memnuniyetle karşılanır ve Journal aracılığıyla MCK'ye, yazarın UCSB Computer Center adresine posta ile ya da (805) 961-3454 numaralı telefondan iletilebilir.)

Yukarıda belirtilen protokolden sapmalara ek olarak, kullanıcı kolaylığını artırmak için çeşitli değişiklikler yapılmıştır. Özellikle, hesap numarası gerektiren TENEX ve diğer sistemlerin kullanıcılarını desteklemek için INACCT, OUTACCT ve ACCT komutları eklenmiştir; OUTPATH, OUT için bir eşanlamlı olarak ve INUSER, INID için eklenmiştir; ayrıca BYE komutu bir ABORT'a neden olmaz. Bunun yanı sıra, resmi protokolün büyük ölçüde programlar tarafından kullanıma yönelik olduğu ve bu nedenle insan kullanıcılar için oldukça zahmetli olduğu gerçeği göz önünde bulundurularak, alternatif ve isteğe bağlı bir komut sözdizimi sağlanmıştır. Yerel sözdizimi olarak adlandırılan bu alternatif sözdiziminin, bir insan kullanıcıya olabildiğince doğal gelmesi amaçlanmıştır. Ayrıca standart sözdizimiyle kullanılamayan bazı özellikler de sunar.

Sağlanan Hizmet

UCSB Computer Center, bir IBM 360/75 işletir ve OS MVT sürüm 21.0 ile HASP çalıştırır. UCSB'deki tüm yığın (batch) işler sisteme HASP üzerinden girer ve bu nedenle RJS, kullanıcı ile HASP arasında bir arayüz görevi görür. RJS'nin işlevi, kullanıcıya kart okuyucu, kart delici, satır yazıcısı ve operatör konsolundan oluşan bir HASP sanal RJE terminali sağlamak ve komutları doğrultusunda ilk üçünü yönetmektir. RJS'nin, belirli bir kullanıcı ile ona ait HASP RJE terminali arasındaki eşleşmeyi sürdürmesi sayesinde, kullanıcı kendi RJE terminali üzerinden gönderdiği işlerin durumunu değiştirmek için komutlar verebilir. Bu, kullanıcı RJS'den çıkış yapıp yeniden giriş yapsa ve hatta bunu başka bir siteden gerçekleştirse bile mümkündür.

RJS'nin kullanımı sırasında gerçekleşen olayların sırası şöyledir. Öncelikle kullanıcı, bir kullanıcı adı, parola ve hesap numarası belirterek giriş yapar. Bu muhasebe bilgileri, RJS'nin sonraki kullanımının nasıl ücretlendirileceğini belirtmenin yanı sıra, belirli bir RJE terminalinin sahibini de tanımlar. Yani, kullanıcı adı ile HASP sanal RJE terminali arasındaki ilişki tektir ve belirli bir kullanıcı adı altında aynı anda yalnızca bir kişinin giriş yapmasına izin verilir.

Şu anda RJS içinde ücretlendirme uygulanmamaktadır; bu nedenle girişte verilen hesap numarası tamamen keyfidir ve kullanıcı adı ile parola da göreceli olarak öyledir. Belirli bir kullanıcı adı ilk kez kullanıldığında herhangi bir parola seçilebilir; daha sonra ise, kullanıcı adı RJS tarafından bilindiği sürece aynı parola kullanılmalıdır. Bir kullanıcı adı, kullanıcı giriş yapmışken ve ayrıca giriş yapmamış olsa bile RJS tarafından bilinen en az bir işe sahip olduğu sürece RJS tarafından tanınır. Aksi takdirde, kullanıcı adı silinir.

Bir kullanıcı giriş yaptıktan sonra, giriş ve çıkış dosyası bilgilerini belirtir ve giriş alımının başlatılmasını ister. Daha sonra dilerse çıkış yapabilir ya da yapmayabilir; özellikle kaynak dosya alımı sırasında girişte kalması gerekmez. Bir iş, işlemenin herhangi bir aşamasında anormal şekilde ya da son çıktısının depolanmasından sonra normal şekilde tamamlanabilir. Her durumda, işin nihai durumuna ilişkin koşullar kullanıcı giriş yapmışsa derhal görüntülenir, tamamlanmasından sonra belirli bir süre saklanır ve kullanıcının bir sonraki girişinde talep üzerine erişilebilir olur. Bu durum bilgisi en az sabit bir süre (şu anda iki gün) boyunca saklanır; yeterli depolama alanı mevcut olduğu sürece daha uzun süre tutulacaktır.

RJS Komutları — Genel Bilgiler

İş parametrelerinin belirtilmesini kolaylaştırmak için RJS, bu parametreler için bir dizi biriktirici (accumulator) tutar. Her biriktirici başlangıçta boştur ve içeriği çeşitli komutlarla ayarlanabilir ya da başvurulabilir. Her kullanıcı için (kullanıcı adı, parola ve hesap birlikte muhasebe parametreleri olarak adlandırılır) aşağıdaki parametre biriktiricileri tutulur: giriş muhasebe parametresi (LOGIN ya da USER, PASS ve ACCT komutlarıyla belirtilenler), kaynak yol adı, yazdırma yol adı, delme yol adı, kaynak muhasebe parametresi, yazdırma muhasebe parametresi ve delme muhasebe parametresi. Ayrıca, her iş ile ilişkili olarak kaynak, yazdırma ve delme yol adları ile kaynak, yazdırma ve delme muhasebe parametreleri bulunur.

TELNET bağlantıları ilk açıldığında, RJS kullanıcıya 300 UCSB RJS (VER. <date>) TTY <integer>. biçiminde bir duyuru iletisi gönderir; burada <date> RJS'nin geçerli sürümünü, <integer> ise her TELNET bağlantısına atanan benzersiz bir TTY numarası anlamında kullanıcının terminalini tanımlar.

Bir iş çalıştırılırken, çeşitli kendiliğinden iş durumu iletileri kullanıcıya gösterilebilir. Bunlar şunlardır:

Buna ek olarak, yerel sözdizimindeyken kullanıcı, sanal operatör konsolu üzerinden HASP'den iletiler alabilir. Bazıları kullanıcının verdiği HASP komutlarına yanıt niteliğindedir, diğerleri ise kendiliğinden iletilerdir. Ancak hepsi, diğer RJS komutlarının girilmesinden bağımsızdır.

Her iki sözdizimi kümesi için de geçerli olan bazı genel kurallar vardır. Bunlar aşağıda verilmiştir:

  1. CR-LF karakter çifti, komutları sonlandırmak için komut kabulü olarak kullanılır. Bu iki karakterin diğer kullanımları yok sayılır ve yerel satır kontrolü için istenildiği gibi kullanılabilir.
  2. Herhangi bir sözdizimsel birimden (ilk ve son dahil) önce ya da sonra herhangi sayıda boşluk kullanılmasına izin verilir.
  3. Büyük ve küçük harfler, <filename> dışında her yerde aynı kabul edilir.
  4. Etkin olmayan sözdizimine geçiş yapıldığında, geçerli TELNET kipleri (tam ya da yarı çift yönlü, karakter ya da satır bazında) kaydedilir ve geçerli sözdizimine yeniden girildiğinde geri yüklenir.

Aşağıdaki sözdizimsel açıklamalarda şu gösterim kullanılır:

Aşağıdaki genel sözdizimsel tanımlar yapılmıştır:

RJS Komutlarının Açıklaması, Standart Sözdizimi

Aşağıda standart sözdiziminde desteklenen komutların bir listesi verilmiştir. Aksi belirtilmedikçe, komutun yanıtı 200 OK'dur. Kullanıcının giriş yapmış olması gerektiği belirtilen durumlarda, kullanıcı giriş yapmamışsa 504 LOGIN PLEASE. yanıtı görüntülenir.

USER

'USER' ['='] <user name> <CA>

Muhasebe amacıyla kullanıcının kullanıcı adını belirtir, girişi başlatır ve kaynak, yazdırma ve delme kullanıcı adı biriktiricilerini <user name> olarak başlatır. Girişi tamamlamak için bu komutun ardından başarılı bir PASS komutu gelmelidir. Kullanıcı giriş yapmadan önce izin verilen tek diğer komut BYE'dır. Sözdizimsel olarak geçerli bir USER komutuna verilen yanıt her zaman 330 ENTER PASSWORD'dur.

PASS

'PASS' ['='] <password> <CA>

Kullanıcının hesabına erişim sağlamak için parolayı belirtir, önceki bir USER komutuyla başlatılan girişi tamamlar ve kaynak, yazdırma ve delme parola biriktiricilerini <password> olarak başlatır. Başarılı bir PASS komutuna verilen yanıt 230 USER <user name> OWNS REMOTE TERMINAL <integer>. şeklindedir; burada <integer>, kullanıcıya ait HASP sanal RJE terminalinin numarasıdır.

Aşağıdaki hata yanıtları mümkündür:

ACCT

'ACCT' ['='] <account> <CA>

Kullanıcının RJS kullanımının ücretlendirileceği UCSB Computer Center hesap numarasını belirtir ve kaynak, yazdırma ve delme hesap biriktiricilerini <account> olarak başlatır. Sözdizimsel olarak doğru bir ACCT komutuna verilen yanıt 200 OK'dur.

Daha önce belirtildiği gibi, RJS ücretlendirmesi henüz uygulanmamaktadır ve bu nedenle ACCT komutu isteğe bağlıdır. Ancak kullanıcılar ve kullanıcı süreçlerini yazanlar, bunun ileride zorunlu olacağı ve o noktada PASS komutunun 330 yanıt kimliği döndüreceği ve ACCT komutunun yukarıda PASS altında listelenen yanıtları vereceği konusunda uyarılmaktadır.

BYE

'BYE' <CA>

Kullanıcıyı çıkış yaptırır ve kendisine ait TELNET bağlantılarını kapatır; devam eden dosya aktarımları olup olmadığına bakılmaksızın bu işlemi yapar. Eğer aktarımlar varsa, değişmeden devam ederler. BYE komutuna verilen yanıt her zaman 231 LOGOUT COMPLETED; TRANSFERS (IF ANY) CONTINUE. olup, ardından TTY <integer> IS DISCONNECTED. devam satırı gelir.

STATUS

'STATUS' <CA>

Şu anda RJS tarafından bilinen kullanıcıların kullanıcı adlarını listeler. Yanıt ya 100 NO USERS ARE KNOWN TO RJS ya da 100 THE FOLLOWING USERS ARE KNOWN TO RJS: şeklindedir; ikinci durumda, her biri dört boşlukla başlayan bir devam yanıt kimliği içeren ve uzak terminal numarasını, o terminalin sahibinin kullanıcı adını ve en son giriş yaptığı sitenin adını veren bir veya daha fazla satır izler.

SYNTAX

'SYNTAX' <CA>

Geçerli komut sözdizimini yerel sözdizimi haline getirir. Yerel sözdiziminde en son geçerli olan TELNET kipleri (tam ya da yarı çift yönlü, karakter ya da satır bazında) yeniden etkin olur. RJS, yerel sözdizimi istem karakteriyle (şu anda numara işareti, #) yanıt verir.

Kalan komutlar, kullanıcının giriş yapmış olmasını gerektirir.

REINIT

'REINIT' <CA>

Kaynak, yazdırma ve delme muhasebe parametrelerini; kaynak, yazdırma ve delme yol adlarını; ve giriş muhasebe parametresi biriktiricilerini boş olacak şekilde sıfırlar. REINIT komutuna verilen yanıt her zaman 204 OK'dur.

INUSER / INID

('INUSER' _ 'INID') ['='] <user name> <CA>

Kaynak kullanıcı adı biriktiricisini <user name> olarak ayarlar.

INPASS

'INPASS' ['='] <password> <CA>

Kaynak parola biriktiricisini <password> olarak ayarlar.

INACCT

'INACCT' ['='] <account> <CA>

Kaynak hesap biriktiricisini <account> olarak ayarlar.

OUTUSER

'OUTUSER' ['='] <user name> <CA>

Yazdırma ve delme kullanıcı adı biriktiricilerini <user name> olarak ayarlar.

OUTPASS

'OUTPASS' ['='] <password> <CA>

Yazdırma ve delme parola biriktiricilerini <password> olarak ayarlar.

OUTACCT

'OUTACCT' <account> <CA>

Yazdırma ve delme hesap biriktiricilerini <account> olarak ayarlar.

INPATH

'INPATH' ['='] <pathname> <CA>

Burada:

Kaynak yol adı biriktiricisini <pathname> olarak ayarlar. <pathname>, bir dosyanın kaynağını ya da hedefini belirtme aracıdır; anlamsal karşılığı aşağıdaki gibidir:

  1. <socket> belirtilmesi, RJS'nin belirtilen sokete tek yönlü (simplex) bir bağlantı kuracağını ifade eder (RJS CONNECT gönderir, kullanıcı LISTEN gönderir). Veri daha sonra bu bağlantı üzerinden aktarılır ve dosya sonu CLOSE ile belirtilir.

  2. <socket> içindeki <host addr> varsayılan bırakılırsa, TELNET kullanıcısını barındıran ana makine varsayılır.

  3. <file> belirtilmesi, RJS'nin belirtilen ana makinedeki standart FTP sunucu soketiyle (şu anda soket 3) bağlantı kuracağını ve veriyi Dosya Aktarım Protokolü'ne göre aktaracağını ifade eder. Burada atıfta bulunulan <file name>, FTP belirtim belgesi RFC #354'te kullanılan <pathname> terimine karşılık gelir.

  4. Taşıma kontrolü türü ve kullanılan veri kodu <attributes> tarafından belirlenir. Bu parametrenin anlamı aşağıdaki gibidir:

    • :T ASCII kodu, TELNET taşıma kontrolü
    • :A ASCII kodu, ASA taşıma kontrolü
    • :N ASCII kodu, taşıma kontrolü yok
    • : giriş için :N, çıkış için :A ile aynıdır
    • <null> giriş için :N, çıkış için :A ile aynıdır
    • :E giriş için :NE, çıkış için :AE ile aynıdır
    • :TE EBCDIC kodu, TELNET taşıma kontrolü
    • :AE EBCDIC kodu, ASA taşıma kontrolü
    • :NE EBCDIC kodu, taşıma kontrolü yok

Aktarım kiplerinin ayrıntılı açıklamaları aşağıda RJS Dosya Aktarımı başlığı altında bulunabilir.


OUTPATH Komutu

('OUTPATH' _ 'OUT') <çıkış dosyası> '=' <disp> <CA>
<çıkış dosyası> = 'A' _ 'B' _ <null>
<disp> = <yoladı> _ '(H)' _ ('(S)' <yoladı>) _ '(D)'

<çıkış dosyası> ya 'A' ya da <null> ise <disp> yazdırma yoladı biriktiricisine, 'B' ise delme (punch) yoladı biriktiricisine kaydedilir. <disp> için seçeneklerin anlamları aşağıdaki gibidir:


INPUT Komutu (Standart Sözdizimi)

'INPUT' <CA>

Bir iş oluşturur, bununla birlikte kaynak, yazdırma ve delme muhasebe parametreleri ile yoladı biriktiricilerinin içeriklerini saklar ve RJS içinde, kullanıcının sahip olduğu ve kaynak dosya aktarımını bekleyen işler kuyruğuna yerleştirir. Bu kuyrukta ilk ya da tek iş haline geldiğinde, kaynak dosyasının alınması başlatılır. İşe bir iş tanımlayıcısı (jobid) atanır ve kullanıcıya gösterilir.

INPUT komutundan önce, kaynak ve yazdırma yoladı biriktiricilerinin INPATH ve OUTPATH komutları ile ayarlanmış olması gerekir. Başarılı olursa şu mesaj görüntülenir:

260 ATANAN JOBID <jobid>.

Burada <jobid>, bu belirli işi tanımlamak için sonraki RJS komutlarında kullanılabilecek olandır.

Kullanıcının azami sayıda işe (şu anda 5) sahip olduğu tespit edilirse, isteği karşılamak için kullanıcının işlemesi tamamlanmış en eski işi bulunmaya çalışılır. Bu mümkünse, eski iş silinir ve komuta verilen yanıt:

260 JOB <eski jobid> YENİ İŞE YER AÇMAK İÇİN ATILIYOR.

şeklindedir ve bunu şu devam satırı izler:

ATANAN JOB ID <yeni jobid>.

Olası hata yanıtları aşağıdaki gibidir:


CHANGE Komutu

'CHANGE' <jobid> <çıkış dosyası> '=' <disp> <CA>

Uygun dosya aktarımı henüz başlamamışsa, <çıkış dosyası> ya 'A' ya da <null> ise <disp> değeri <jobid> işinin yazdırma yoladı olarak, 'B' ise delme yoladı olarak kaydedilir.

Olası hata yanıtları:


STATUS Komutu

'STATUS' <jobid> <CA>

RJS tarafından <jobid> olarak bilinen işin durumunun görüntülenmesine neden olur. Bu görüntülemede aşağıdakiler yer alır:

Olası yanıtlar:


CANCEL Komutu

'CANCEL' <jobid> <CA>

RJS tarafından <jobid> olarak bilinen işin işlenmesini derhal sonlandırır ve bununla ilgili tüm kayıtları siler. FTP veri ve/veya komut bağlantıları beklemede ya da kurulmuş durumdaysa kapatılır; iş çalıştırma aşamasındaysa, çalışmayı sonlandırmak için bir OS CANCEL komutu gönderilir. İşten çıkan tüm çıktılar kaybolur ve <jobid> işinin durumuna ilişkin sonraki bir istek, işin bulunamadığına dair tanılama döndürür.

Başarılı yanıtlar:

Olası başarısızlık yanıtları:


Aşağıdaki standart RJS komutları henüz uygulanmamıştır ve 506 KOMUT UYGULANMADI. yanıtını üretir:


RJS Komutları — Yerel Sözdizimi Kuralları

Yukarıda tartışılan genel kurallara ek olarak, yerel sözdizimi için aşağıdaki kurallar geçerlidir:

  1. Aşağıda belirtilen bazı durumlar dışında, komut kabulü için nokta kullanılabilir.

  2. Aşağıdaki kontrol karakterleri belirtilen işlevlere sahiptir:

    • SOH (kontrol A): son karakteri sil
    • DEL: son karakteri sil
    • SYN (kontrol V): son kelimeyi sil
    • CAN (kontrol X): tüm satırı sil
    • EOT (kontrol D): geçerli kelimeyi göster
    • ACK (kontrol F): tüm satırı göster
    • ?: kabul edilebilir giriş biçimlerini göster
    • ESC: geçerli kelimenin tanınmasını zorla
    • boşluk: geçerli kelimenin tanınmasını zorla
  3. TELNET kontrol karakterleri you-echo ve I-echo istenen sonuçları verir. You-echo, kullanıcı zaten bu kipte değilse, karakter-karakter kipine geçilmesine de neden olur.


RJS Komutlarının Açıklaması — Yerel Sözdizimi

Aşağıda, yerel sözdiziminde desteklenen komutların bir listesi yer almaktadır. Başarılı yanıtın belirtilmediği durumlarda, RJS CR-LF ve ardından istem karakteri ile yanıt verir. Kullanıcının oturum açmış olması ya da olmaması gerektiği belirtilen durumlarda, kullanıcı uygun durumda değilse sırasıyla LOGIN PLEASE. veya LOGGED IN. görüntülenir.

Standart sözdizimi altında listelenen bir yanıta atıf yapıldığında, yanıt kimliklerinin yerel sözdizimi altında görüntülenmediği unutulmamalıdır.

FULLDUPLEX

'FULLDUPLEX' <CA>

Kullanıcıyı tam çift yönlü ve karakter-karakter kiplerine ayarlar.

HALFDUPLEX

'HALFDUPLEX' <CA>

Kullanıcıyı yarım çift yönlü kipine ayarlar.

LINE-AT-A-TIME

'LINE<-AT<-A<-TIME' <CA>

Kullanıcıyı yarım çift yönlü, satır-satır kiplerine ayarlar. Daha önce açıklanan kontrol karakterleri geçerli kalır, ancak RJS, geçerli komut satırı boş olmadıkça TELNET bağlantısı üzerinden hiçbir çıktı göndermez.

LOGIN

'LOGIN' <kullanıcı adı> <parola> <hesap> <CA>

Kullanıcının RJS kullanımının faturalandırılacağı UCSB Computer Center kullanıcı adı ve hesabını belirtir, kullanıcıyı oturum açtırır ve kaynak, yazdırma ve delme muhasebe parametreleri biriktiricilerini <kullanıcı adı>, <parola> ve <hesap> olarak ayarlar. Bu komut yalnızca kullanıcı oturum açmamışsa geçerlidir ve standart sözdizimindeki PASS komutu ile aynı yanıtları verir.

DISCONNECT

'DISCONNECT' <CA>

TELNET bağlantısını kapatır. Kullanıcı oturum açmışsa, önce oturum kapatılır. TELNET bağlantısının beklenmedik bir şekilde kapanmasına verilen fiilî yanıt, DISCONNECT komutunun yanıtıdır. DISCONNECT komutuna verilen yanıt:

TTY <tamsayı> BAĞLANTISI KESİLDİ.

Kalan komutlar, kullanıcının oturum açmış olmasını gerektirir.

LOGOUT

'LOGOUT' <CA>

Kullanıcının oturumunu kapatır ve TELNET bağlantısı üzerindeki sonraki etkinliklerin, daha önce geçerli olan muhasebe parametrelerine göre faturalandırılmasını sonlandırır; ayrıca REINITIALIZE komutunun fiilî eylemini gerçekleştirir. LOGOUT, TELNET bağlantısını kapatmaz ve kullanıcının sahip olduğu işler için devam eden dosya aktarımlarını etkilemez.

REINITIALIZE

'REINITIALIZE' <CA>

Aşağıdaki biriktiricileri boş olacak şekilde sıfırlar: kaynak, yazdırma ve delme muhasebe parametreleri; kaynak, yazdırma ve delme yoladı; ve oturum açma muhasebe parametresi.

ACCOUNTING

'ACCOUNTING' <hesap parametreleri> <CA>
<hesap parametreleri> = '(' <u> ',' <p> ',' <a> ')'
<u> = <kullanıcı adı> _ <null>
<p> = <parola> _ <null>
<a> = <hesap> _ <null>

Kaynak, yazdırma ve delme muhasebe parametrelerini <hesap parametreleri> olarak ayarlar. <u>, <p> veya <a> için <null> belirtilmesi, ilgili oturum açma biriktiricisinin içeriğinin kullanılacağını gösterir.

SOURCE (Muhasebe Parametreleri)

'SOURCE' <hesap parametreleri> <CA>

Kaynak muhasebe parametreleri biriktiricilerini <hesap parametreleri> olarak ayarlar.

'PRINT' <hesap parametreleri> <CA>

Yazdırma muhasebe parametreleri biriktiricilerini <hesap parametreleri> olarak ayarlar.

PUNCH (Muhasebe Parametreleri)

'PUNCH' <hesap parametreleri> <CA>

Delme muhasebe parametreleri biriktiricilerini <hesap parametreleri> olarak ayarlar.

SOURCE (İş Tanımı)

'SOURCE' <jobid> (<hesap parametreleri> _ <null>) <yoladı> <CA>

<jobid> işinin kaynak yoladını <yoladı> olarak ayarlar ve kaynak muhasebe parametrelerini, belirtilmişse <hesap parametreleri>ne, aksi halde kaynak muhasebe parametreleri biriktiricilerinin içeriğine ayarlar.

<jobid> işi zaten mevcutsa ve kaynak yoladı belirtilmemişse, yeni yoladı kaydedilir; belirtilmişse ve kaynak dosya alımı henüz başlamamışsa değiştirilir. İş zaten mevcut değilse, yeni bir iş oluşturulur ve yoladı kaydedilir.

Kısıtlamalar:

Kullanıcı zaten azami sayıya sahipse, standart sözdizimi altındaki INPUT için açıklandığı şekilde, yeni işe yer açmak üzere eski bir işin silinmesine çalışılır.

Olası hata yanıtları:

'PRINT' <jobid> (<hesap parametreleri> _ <null>) <disp> <CA>

<jobid> işinin yazdırma yoladını <disp> olarak ayarlar ve yazdırma muhasebe parametrelerini, belirtilmişse <hesap parametreleri>ne, aksi halde yazdırma muhasebe parametreleri biriktiricilerinin içeriğine ayarlar. PRINT komutu, SOURCE altında açıklandığı gibi ya yeni bir iş oluşturur ya da mevcut bir işi değiştirir ve READ yerine PRINTED ikamesi yapıldıktan sonra aynı kısıtlamalara ve hata iletilerine sahiptir. PRINT komutu yalnızca yazdırma dosyası aktarımı başlamadan önce geçerlidir.

PUNCH (İş Tanımı)

'PUNCH' <jobid> (<hesap parametreleri> _ <null>) <disp> <CA>

<jobid> işinin delme yoladını <disp> olarak ayarlar ve delme muhasebe parametrelerini, belirtilmişse <hesap parametreleri>ne, aksi halde delme muhasebe parametreleri biriktiricilerinin içeriğine ayarlar. PUNCH komutu, SOURCE ve PRINT komutları gibi ya yeni bir iş oluşturur ya da mevcut bir işi değiştirir ve READ yerine PUNCHED ikamesi yapıldıktan sonra aynı kısıtlamalara ve hata iletilerine sahiptir. PUNCH komutu yalnızca delme dosyası aktarımı başlamadan önce geçerlidir.

DELETE

'DELETE' <jobid> <CA>

Standart sözdizimindeki CANCEL komutu ile işlevsel olarak aynıdır.

INPUT (Yerel Sözdizimi)

'INPUT' <jobid> <CA>

<jobid> ile tanımlanan işi, RJS içinde, kullanıcının sahip olduğu ve kaynak dosya aktarımını bekleyen işler kuyruğuna yerleştirir. Bu kuyrukta ilk ya da tek iş haline geldiğinde, kaynak dosyasının alınması başlatılır. INPUT komutu başarılı olursa şu mesaj görüntülenir:

JOB <jobid> İŞLEME İÇİN KABUL EDİLDİ.

Olası hata iletileri:

JOBSTAT

'JOBSTAT' <jobid> <CA>

Standart sözdizimindeki STATUS <jobid> komutu ile işlev ve yanıt açısından aynıdır.

JOBLIST

'JOBLIST' <CA>

Kullanıcının sahip olduğu işlerin jobid'lerini listeler.

Operatör Komutu

$ <metin> <CA>
<metin> = '?' ve '.' dahil olmak üzere herhangi karakterlerden oluşan bir dize.

<CA>'nın nokta yerine CR-LF olması gerektiğine dikkat edin.

<metin>i, kullanıcının sanal operatör konsolu üzerinden bir HASP operatör komutu olarak gönderir. HASP komutlarının ve komut yanıtlarının açıklaması için Ek A'ya bakınız.

RJS Dosya Aktarımı

Daha önce tanımlanan <yoladı>, kullanıcının kaynak, yazdırma ve delme dosyalarının konumunu ve özniteliklerini belirtmesini sağlayan araçtır. Bir dosyanın konumunun belirlenme yöntemleri daha önce ele alınmıştır; bu bölüm, kullanıcının veri öznitelikleri üzerindeki denetimlerini açıklar.

<öznitelikler> parametresi, satır denetimi türünü ve aktarım kipini belirtir. Simpleks bağlantı üzerinden aktarım durumunda, bu parametrenin anlamları aşağıdaki gibidir:

Dosya aktarımı FTP aracılığıyla gerçekleştiğinde, <öznitelikler> parametresinin yorumlanışı biraz farklıdır. Bu durumda anlamlar aşağıdaki gibidir:

FTP dosya aktarımını gerçekleştirmek için RJS, aşağıdaki FTP komutlarını (verilen sırayla) gönderir: USER (erişim kullanıcı adı belirtilmişse), PASS (parola belirtilmişse), ACCT (hesap belirtilmişse), BYTE (bayt boyutu 8 olarak belirtilir), ALLO (çıkış dosyası yazdırılıyorsa), TYPE, STRU, MODE, SOCK ve APPE veya RETR.


Ek A: HASP Kuyruklama Sistemi

HASP, IBM OS/360 ile birlikte kullanılan ve yığın işlerin işlenmesine yardımcı olan bir biriktirme-kuyruklama-zamanlama sistemidir. HASP’nin temel amacı, G/Ç bekleme süresini en aza indirerek verimi artırmak ve daha kısa işlerin daha uzun işlere göre işlenmek üzere seçildiği bir öncelik zamanlama düzeni sağlamaktır.

HASP içinde çeşitli işleme aşamaları ya da işlevler vardır. Herhangi bir anda, belirli bir iş ya bir işleme aşamasındadır; bu durumda iş aktif olarak adlandırılır ya da bir işlev tarafından işlenmeyi beklemektedir; bu durumda ise o işlev için kuyruğa alınmış olduğu söylenir. Bir işlev tarafından işlenecek işler, o işlevi bekleyen işler kuyruğundan, azalan öncelik sırasına göre seçilir. Bir işin önceliği, tahmini CPU süresi ve çıktı hacmi tarafından belirlenir. Bunun sonucu olarak daha küçük işler, daha büyük işlere göre işlenmek üzere seçilir ve dolayısıyla sistem içinde daha az zaman geçirir.

HASP uzak kullanıcısına sanal bir operatör konsolu sağlanır. Bu konsol üzerinden kullanıcı, sistem hakkında genel bilgileri görüntülemek ve terminali ile işlerini denetlemek için HASP operatör komutları girebilir. HASP, komutlarına yanıt olarak ve kendisiyle ilgili koşullar ortaya çıktıkça kullanıcıyı bilgilendirmek amacıyla konsoluna iletiler gönderir. HASP komutları aşağıdaki genel biçime sahiptir:

$ <verb> <operand1>,<operand2>,...,<operandn>

burada:

Komuta bağlı olarak sıfır ya da daha fazla operand bulunabilir ve birden fazla operand kullanıldığında ayırmak için virgüller kullanılır. Genel olarak, alfabetik karakterler büyük ya da küçük harf olarak girilebilir ve eşlenmiş kesme işaretleri dışındaki metinlerde istenilen herhangi bir noktada boşluk eklenebilir. Metin karakteri olarak kullanılmak istenen kesme işaretleri çift olarak yazılmalıdır.

Her HASP komutu bir ya da daha fazla yanıt üretir. OK yanıtı, birçok durumda komutun alındığını ve istenen eylemin gerçekleştirildiğini ya da başlatıldığını belirtmek için kullanılır. İkinci durumda, istek tamamlandığında bir bilgilendirme iletisi yayımlanır.

Her HASP konsol iletisi, S HH.MM.SS ya da S*HH.MM.SS metniyle başlar; burada HH.MM.SS, 24 saatlik saat düzeninde saat, dakika ve saniye cinsinden günün saatidir.

Birçok komut, yanıt olarak iş durumu bilgilerini görüntüler. Bu standart yanıtın biçimi aşağıdaki gibidir:

işlenmek üzere kuyrukta olan işler:
JOB jjj jobname AW EXEC  class PRIO prio HOLD
                   PRINT rem             PURGE
                   PUNCH rem             *DUP*
                   PURGE

işlenmekte olan işler:
JOB jjj jobname EXECUTING class PRIO prio HOLD
                ON DEVICE dev             PURGE
                IS PURGING

burada:

Aşağıda, bir uzak kullanıcı tarafından verilebilecek HASP operatör komutlarının kısa bir açıklaması yer almaktadır (daha kapsamlı bir açıklama için NIC #16306’ya bakınız):


Ek B: RJS Yanıt Kimlikleri

Aşağıda, belirtilen komutlara yanıt olarak RJS tarafından üretilen yanıtların yanıt kimliklerinin bir listesi verilmiştir:

Komut Başarı Yanıtı Başarısızlık Yanıtları
USER 330 501
PASS 230 501, 431, 505
ACCT 200 501
BYE 231 501
REINIT 204 501, 504
INUSER / INID 200 501, 504
INPASS 200 501, 504
INACCT 200 501, 504
OUTUSER 200 501, 504
OUTPASS 200 501, 504
OUTACCT 200 501, 504
INPATH 200 501, 504
OUTPATH / OUT 200 501, 504
INPUT 260 501, 360, 504, 505
CHANGE 200 501, 464, 504
STATUS (operand yok) 100 501
STATUS (operand ile) 161 501, 464, 504
CANCEL 262 501, 464, 504

Olası kendiliğinden oluşan yanıt kimlikleri şunlardır: 300, 440, 441, 442, 461 ve 466.

Bu RFC, çevrimiçi RFC arşivlerine giriş için Mikan Mirko tarafından makine tarafından okunabilir biçime dönüştürülmüştür.