Showing posts with label architecture. Show all posts
Showing posts with label architecture. Show all posts

May 10, 2012

Finagle 概述

Finagle 是基於JVM的網路框架/堆疊,開發者能在之上使用Java,Scala或任何基於JVM程式語言來開發非同步運算的RPC Client/Server,其專案是 Twitter 總結了實務上遇到的問題,所設計的分散式系統方案,並在2011的7月開放源始碼,目前功能如下表


Protocols

  • HTTP
  • Streaming HTTP (Comet)
  • Thrift
  • Memcached/Kestrel
  • More to come!

Server Support

  • Backpressure (to defend against abusive clients)
  • Service Registration (e.g., via Zookeeper)
  • Native OpenSSL bindings

Client Support

  • Connection Pooling
  • Load Balancing
  • Failure Detection
  • Failover/Retry
  • Distributed Tracing (a la Dapper)
  • Service Discovery (e.g., viaZookeeper)
  • Rich Statistics
  • Native OpenSSL bindings
  • Sharding


Feb 17, 2012

TOTP authentication demo 開發工具與佈署環境(Heroku)

延續前篇 使用 TOTP 與 Google Authenticator 實作 Two-Factor authentication ,此篇說明使用到的工具與相關心得

Application
Back-end

  • Java
  • slf4j
  • Apache commons-codec
  • Spring framework 3.1
嘗試了些新版的功能
1. Java-based configuration 覺得一般使用沒比 XML schema-based 好用,做框架設計的時候會比較實用,動態組裝、設定樣版、模組化,不知道還能怎麼運用
2. Environment API 在啟動時依系統參數來區分"開發"或"佈署環境"的Profile,用於載入不同的 bean definition,若沒指定啟動參數則為 default 的 profile
e.g. JAVA_OPTS => -Dspring.profiles.active=heroku
Google 的 QRCode library,在這用來產生 QRCode image 傳遞 secret key
Redis Client 端的 Java Library
在這用來做 redis 的連線控制,避免階層操作下佔用多組連線
  • TOTP Algorithm
基於 RFC6238:TOTP: Time-Based One-Time Password Algorithm 附錄程式並做了些簡化

Front-end
  • Spring MVC
試用 Servlet 3.0 免宣告 web.xml 的功能,但從 Tomcat 搬到 Jetty 遇到些問題,在 Jetty 的根目錄(/) 會被 DefaultServlet 覆蓋, 導不到 spring mvc的DispatcherServlet,不想多加 Filter 只好換回 web.xml
Twitter 開發的前端工具庫