PHP RPC vs DİNLENME [kapalı]

3 Cevap php

I'm building my own ajax website and I'm contemplating between REST and RPC.
If my server supported Servlets I'd just install persevere and end the problem but my Server doesn't support Servlets.
RPC is simpler to code (imo) and can be written in PHP easily.
All I need is a database query executer.
I'm using the Dojo Toolkit and JSON.

Neden DİNLENME üzerinden RPC veya RPC üzerinden DİNLENME seçmeliyim?

3 Cevap

uhm ... onlar doğal Everewhere ortaya, hem çok soyut ... çok soyut modelleri, basit koymak için ...

REST kaynaklar global tanımlayıcısı ile ele olan fikir (URI HTTP durumunda) {[kullanılarak (a CRUD bir şekilde erişilebilir olduğu (3)]}, GET, PUT ve DELETE {durumunda [(2)]} ... de en azından bu olur) ...

RPC bazı parametrelerdeki geçen ve bir geri dönüş değeri alarak, farklı bir makinede bir yordamı çağırmak fikir ...

there is a nice short comparison on the wiki

Persevere sağlayan bir hizmeti oluşturur hem de (bunu başarmak için HTTP özelliklerini kullanmak değil sadece rağmen) (çok zarif bir şekilde, kuşkusuz) ... o REST ful and, bir RPC arayüz ortaya ...

sonunda, sizin app ... ne yapmak gerekiyor bakmak gerekir çoğu insan gibi, muhtemelen bir RPC API (o XML dayalı olması ya da gireriz REST fulnes sahip esneklik anlamına gelir çünkü JSON ya da her neyse), bu kısmen REST ful alt sistemi için bir ulaşım katmanı içerir ... Bu, bir ... İstemci daha az ya da özgürce (basit CRUD yöntemleri bir dizi aracılığıyla) sunucuda verileri çapraz eğer, bu API aracılığıyla maruz yöntemlerin sınırlı (özel problem) sette bağlı değildir, ve mantık clientwards kayabilir. ..

Bunu anlamak için en iyi yolu, Roy T. Fielding üzerine tez, veya ilgili makaleler okumak için onun blog o saf REST ve sadece RPC mimariler arasındaki farklar anlatılmaktadır nerede.

Unutulmaması gereken başka bir şey DİNLENME üzerinde Wikipedia makale kasvetli durumda olduğunu ve kendisini Fielding, REST 'mucidi', makale yanlış olduğunu göstermektedir olmasıdır.

Insanlar REST ile özledim büyük şey keşfedilebilirlik olduğunu - kaynaklar yerine out-of-band ve non-standart olan URI adlandırma kuralları, güvenerek onların hipermetnin içinde ilgili diğer kaynaklar için URI'lere, içermelidir.

SOAP veya XML-RPC gibi sevilen RPC uygulamaları ile büyük bir problem Peki bu uymuyor, silme vb GET yerine, PUT gibi HTTP tüm değişik özellikleri yararlanarak daha, kendi özel mimarisi altında HTTP kullanımı olduğunu geleneksel web yanı sıra yığını - ortasında bir önbellek sunucusu RPC çağrısı içeriğinin anlamı hakkında bilmeden, örneğin, çalışmıyor.

Bu REST ve RPC tamamlanmamış bir giriştir ama ben sık sık cevapsız önemli noktalardan bazıları vurgulanır düşünüyorum. Yanlış bir bilgi LOT GERİSİ üzerinde orada olduğundan, dikkatli olun.

O dedi, DİNLENME her şey için değildir. Bu bir mimari, bu yüzden bunu uygulamak nasıl oldukça esnek. Öncelikle kaynak gibi şeyler ulaşmak için mantıklı değil Ama eğer, o DİNLENME uymayabilir, ya da sadece ince olduğu, uygulamanın parçalar için uygun olabilir.

Hizmetleri üç farklı stilleri vardır:

  • RPC API - müşteri hizmet için bir prosedür ve parametreleri gönderir ve servis komutu yürütme ve sonucu dönen sorumludur.
  • Message API (Document API) - doğrudan operasyonlarını ima yapmak eğilimindedir, çünkü müşteri, DOMS normalde RPC API çağrıları daha karmaşık yapılardır (elemanlar), gönderir.
  • Resource API - bilgi (veritabanı Dizilerini, dosyalar, resimler vb) erişmek için kullanılır. Genel olarak da iyi Medya Türü Müzakere sağlamalıdır.

SABUN ve DİNLENME W3C standartları derleme ve temel fark soap taşıma protokolleri gibi, HTTP, SMTP ve vb kullanır ve DİNLENME aka uygulama protokolü olarak kullanmasıdır. gerektiği destekleri (, DELETE, PUSH PUT, POST GET). SABUN ayrıca XML ve REST kullanarak herhangi bir veri türünü (json, xml, http ...) kullanabilirsiniz anlamına gelir. Dahası SOAP başlıca avantajlarından biri, müşteriye Servis Connector (vekil) auto-nesil imkanı verir Servis Tarif (WSDL dosyası), olduğunu.

Bir gümüş kurşun, bir web hizmeti türü ve mimari gerçek müşteri ve teknoloji gereksinimlerine bağlı olan, yok.

For a general idea on the subject, one of the Martin Fowler Signature Books - Service Design Patterns http://martinfowler.com/books/sdp.html