[英]Does this Scala Perl/Python architecture make sense
在另一個問題中,我為某種目的要求“最好的”語言。 實現這個目標有點太多了,我簡化了我的想法:)但是有非常有用的語言提示。 所以我決定在桌面應用程序上使用Scala,並考慮在Web服務器上使用Perl和Python。
我想編寫類似異步聊天(有點像電子郵件)的東西。 所以你開始你的程序選擇你的名字,並添加一個他的唯一ID的朋友。 然后你可以給他寫一個簡單的消息,當你的朋友啟動他的電腦時,啟動他收到郵件的“chat.exe”(需要互聯網)並且能夠回答。 沒有特殊功能,笑臉或文字格式,只是為了學習目的。
我的概念是:使用Scala作為“chat.exe”(或者只是“chat.jar”可能嗎?),它通過SOCKET與處理請求的Perl / Python框架進行通信。 所以你輸入“Hello there”並點擊發送。 此消息通過SOCKET傳輸到Perl / Python腳本,該腳本讀取請求將此消息放入MySQL數據庫。 在另一方面,您朋友的chat.exe檢查新消息,如果有消息,則Perl / Python腳本會傳輸消息。 也通過SOCKET。
您認為這可行嗎? SOCKET適合適合嗎? 或者也許是REST? 但我認為對於REST-Requests,您必須使用URI(http://example.com/newmessage/user2/user3/Hi_how_are_you)。 這看起來非常不安全。
期待您的評論!
祝你今天愉快,
庫爾特
如果您問我,我認為Scala最適合服務器端。 Scala在JVM上運行,Java在服務器端有一個非常大的生態系統。 你有各種各樣的應用程序服務器(tomcat,jetty,glassfish等)。
聊天是演員的經典用例。 我認為Akka可以在這個領域激勵你。
您可以使用精美的Scala Web框架,例如Lift。 您甚至可以進行基於網絡的聊天。 這是使用彗星(服務器推送)的聊天應用程序的示例:
關於REST:如果你覺得它不安全那么
使用Scala作為“chat.exe”(或者只是“chat.jar”可能嗎?)
步驟1.圖出來。 實際寫一些東西,看看可以做什么。
它通過SOCKET與處理請求的Perl / Python框架進行通信。
沒意義。 所有的Internet通信都是通過套接字完成的。 忽略這句話,您不會失去任何意義。
此消息通過SOCKET傳輸到Perl / Python腳本,該腳本讀取請求將此消息放入MySQL數據庫。
一些有用的信息。 然而,套接字不言而喻。
在另一方面,您朋友的chat.exe檢查新消息,如果有消息,則Perl / Python腳本會傳輸消息。 也通過SOCKET。
對。 同樣,套接字並不意味着什么。
在套接字之上,有數十種協議。 FTP,Telnet,HTTP,SMTP等,等等。
步驟2是弄清楚您要使用哪種協議。 順便說一句,REST是HTTP的一種特殊用途。 在關閉它們之前,您應該非常仔細地仔細研究HTTP和REST。
這看起來非常不安全
不清楚你為什么這么說。 我只能猜測您對HTTP安全功能一無所知。
懶惰的程序員可能會這樣做。
安裝Python,Django,MySQL-Python和Piston。
定義Django模型,配置默認值,以便將模型公開為安全的RESTful服務集。
服務器端消息GET,POST,PUT和DELETE都由Django,Piston和Django ORM層提供。 身份驗證可以是各種機制中的任何一種。 我是HTTP摘要認證的忠實擁護者。
要實現類似的東西,你需要通過一個MQ系統,比如ActiveMQ,而不是使用普通的套接字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.