Masaüstü uygulamaları web hizmetlerinden önce uzak sunucu ile nasıl iletişim kurdu?


11

Masaüstü uygulamaları ile ilgili çok fazla tecrübem yok, ancak bir istemci sunucusu masaüstü uygulaması oluşturmak zorunda kalsaydım, veri erişimi bir web servisi aracılığıyla yapılacaktı. Bir web hizmeti üzerinden veri erişiminin güvenlik sağladığına inanıyorum - db sunucusu kullanıcı adı ve parolasını vb. Geçirmem gerekmiyor.

Web servislerinden önce, veritabanı uygulamaları bunu nasıl yaptı? Tüm önemli db bilgileri masaüstü uygulamasının kurulumuna geçti mi? Varsa, programcılar güvenlik yönünü nasıl yönetti? Yoksa programcılar web hizmetlerine benzer bir şey mi kullandılar?


5
DCOM (Dağıtılmış COM), CORBA, Java RMI gibi uzaktan yordam çağrıları için komik şeyler vardı ... HTTP aracılığıyla bazı veriler isterken anında hiçbirini tam olarak anlamadım. Ben her gün webservices grok kolaylaştırmak için web tarayıcıları kullanmak sanırım :-)
marcus

3
@marcus: HTTP'de yerleşik olarak istek yanıtı olduğu için "soket üzerindeki bazı protokoller" herkesin tekerleği biraz farklı bir şekil icat etmesine neden olur.
Steve Jessop

Yanıtlar:


11

Web servisini aradığınız şeye bağlı olarak.

WSDL ve REST'ten önce hala HTTP vardı, bu yüzden temelde şimdi yapabileceğiniz her şey daha önce de yapılabilirdi.

Tekdüzelik eksikliği vardı (bu yüzden ilk etapta WSDL ve REST oluşturuldu), ancak bahsettiğinizle aynı düzeyde veri gizliliği ve güvenliği sağladı.

Aslında HTTP kullanmaktan da kaçınabilirsiniz: kendi protokolünüzü hazırlayabilir ve bu sunucuya bir soket açacak ve ihtiyaç duydukları verileri alacak (veya verileri gönderecek) özel bir sunucu ve özel istemciler kullanabilirsiniz. Burada, HTTP'nin tüm standartlaştırma avantajını kaybedersiniz, ancak bir kez daha istemcilere veritabanına erişim izni vermezsiniz.


17

Ah, sopalarımız ve taşlarımız olduğunda.

İnternetten önce, "istemci / sunucu" mimarisi ve Yerel Alan Ağları diye bir şey vardı. Birkaç mil ötedeki bir sunucuyla bağlantı kurmaya çalışmadıysanız, bu ağlar her şeyi başarmak için mükemmel bir şekilde çalıştı. İsterseniz sürücü harfleri oluşturabilir ve uzak sabit sürücü gibi dosya sunucularına bağlantıları kullanabilirsiniz. Eğer varsa vardı birkaç mil uzakta, daha yavaş bir hızda olsa ve daha pahasına, aslında aynı şeyi yapmak için bir Geniş Alan Ağı kullanabilirsiniz.

Konuşmak değersiz yolu uzaktan modemler denilen cihazlar kullanarak telefon hatları üzerinden bilgi aktarmak için, ve sen iki bilgisayar bilgisayar uygulamaları aracılığıyla birbirlerine konuştuk şey up teçhizat istiyorsa, bunu bugün bunu aynı şekilde yaptı: tarafından kurulması bir iletişim protokolü. Bununla ilgili büyülü bir şey yok; her iki taraf da tüm baytların ne anlama geldiğini kabul etmek zorundadır.

İnternet'in ilk aşamalarından itibaren, makineler arasında iletişim kurma yolları vardı. Web Servisleri haftanın en yeni lezzetidir.


5
; "Hiçbir şey büyülü bu konuda hiç var her iki tarafın sadece ortalama bayt neyi tüm katılıyorum zorunda" ve endian :)
HJK

2
@hjk, bu kolay: little-endian açıkça diğer tüm seçeneklerden üstündür :-)
Mark

3
İnternetin tanımının , makinelerin iletişim kurması için yollar olmasını gerektirdiğini söyleyecek kadar ileri gidebilirim . Bunu yapamazlarsa, bu internet değil, ihtişam sanrıları olan bir grup kablo.
Steve Jessop

2
@SteveJessop: Yanılıyorsunuz, " Bu bir dizi tüp ".
Tekilleştirici

3

Önce bazı kavramları temizlemek için ...

Bir web hizmeti üzerinden veri erişiminin güvenlik sağladığına inanıyorum - db sunucusu kullanıcı adı ve parolasını vb. Geçirmem gerekmiyor.

Yukarıdaki açıklamada (1) Aktarım Katmanı Güvenliği (TLS) ve (2) erişim denetimleri kavramlarını karşıladığınızı düşünüyorum ... Bir kullanıcı adının ve parolanın girilmesi gerekip gerekmediği, bir web hizmetinin (1) şifreli bir kanal ve (2) kimlik doğrulama (ör. bir API anahtarı) aracılığıyla sağlanır.

Çok kötü yazılmış bir web servisi hala şifrelerin HTTP üzerinden düz metin olarak gönderilmesini gerektirebilir. Kötü yazılmış bir kişi bunu HTTPS üzerinden yapabilir (güvenli, ancak bir kez kırılmış, örneğin ortadaki bir adam saldırısına, kötüye kullanıma açık). Daha iyi yazılmış bir web hizmeti, kimlik doğrulama ve yetkilendirme denetimleri doğrulandıktan sonra veritabanı bağlantısını, örneğin oturum kimlikleri gibi diğer girdilere dayalı olarak dahili olarak ele almalıdır.

Ana noktaya geri dönersek, @ marcus'un sorunuza yaptığı yorum aslında. Güvenlik hususları, "modern" teknolojilerden farklı bir şekilde ele alınmaz ve aşağıdakiler gibi uygulama sorularını kapsar:

  • Senin olsun iletişim protokolü (RobertHarvey cevabı @ dan biraz ödünç) şifreli veri iletimini destekler.
  • Mesaj yükü sunucu ve istemci arasında iletilir yapısı.
  • Sunucunun veritabanı bağlantısını nasıl yönettiği (istemciden gerçekten yalıtılmıştır, ilk paragrafa bakın).

Daha fazla bilgi için:

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.