2010年6月14日 星期一

Cloud

可以託管應用和資料庫的商業公司提供的軟體即服務(SaaS)、平臺即服務(PaaS)、基礎架構即服務(IaaS)和資料庫即服務(DaaS)。

1.基礎架構提供商包括亞馬遜的彈性計算雲EC2、 GoGrid、Rackspace Mosso和Joyent,

2.微軟的Azure、Google AppEngine、Force.com、Zoho和Facebook則是平臺提供商

3.針對特定用戶的雲服務提供者,如惠普的雲列印服務,IBM 的LotusLive為企業提供的協作和社交網路服務。
其它SaaS提供商如Birst和SAS提供按需商務智慧服務,Salesforce.com和 Zoho提供客戶關係管理(CRM),Epicor、 NetSuite、SAP Business ByDesign和Workday提供企業資源規劃(ERP)套件

4.DaaS提供商包括EnterpriseDB、FathomDB、 Longjump和TrackVia。

文檔存儲和列存儲

文檔存儲和列存儲
   按列存儲資料雖然沒有顛覆傳統的按行存儲資料的理論,但結合資料壓縮,無共用,大規模並行處理架構時,它可以保持高性能做應用分析和商務智慧處理,在雲 計算服務中使用Sybase IQ或Vertica列存儲,組織可以在保持伺服器硬體不變的情況下增強BI能力,Sybase IQ處理複雜的分析查詢,加速報告處理,包括為字串處理建立索引,如SQL LIKE查詢,它通過標準資料訪問API提供連接,它的Rcube方案相對普通關係資料倉庫和資料集市提供了性能上的優勢。Vertica分析資料庫支援 網格架構,TB級大小的資料庫,基於標準的連接,亞馬遜EC2用戶可以即付即用,有一個大型AMI實例,ODBC,JDBC,Python和Ruby驅動,資料庫大小每節點可以達到1TB,節點數量可以無限制增加。

   Apache CouchDB是一個靈活的,具有容錯功能的資料存儲,它支援JavaScript物件標記(JSON)和AtomPub資料格式,它為讀取和更新命名文 檔提供REST風格的API。為了確保資料一致性,它具有ACID屬性,不會覆蓋提交的資料,它使用一個文檔ID和序號寫入B叉樹索引,並依靠序號提 供生成文檔版本的功能。CouchDB提供了一個基於對等的分散式資料庫解決方案,支援雙向複製。

RDF和語義資料存儲

RDF和語義資料存儲
  社交網路和 電子商務已經向我們表明了許多網路應用必須使用大規模資料存儲,支援上百萬的用戶併發訪問,雲端運算通常被吹捧為解決這一問題最佳辦法,並提出了Web 3.0的概念。資料存儲可以處理非常大的知識庫和資料集編碼,使用W3C資源描述格式(RDF)和W3C SPARQL查詢語言傳遞語義。RDF資料是按照主題-謂詞-物件三元組進行存儲的,重要的RDF資料還存儲了額外的資訊,如版本資訊,臨時查詢資訊等。

  Sesame, Jena, and Mulgara是開源的解決方案,OpenLink Virtuoso是一個萬能伺服器, 最近的基準測試達到了110500三元組/秒,除了SQL和XML資料庫外,它還提供了線上備份亞馬遜S3和安裝RDFizer盒子的功能。Franz AllegroGraph RDFStore提供了一種手段在雲中構建基於RDF的聯合知識庫存儲,它支援SPARQL查詢,Prolog語言和RDFS + +分析。在亞馬遜EC2上,它使用10個大型EC2實例花了6.19小時存儲和索引了10億三元組資料集。可以存儲RDF三元組的SQL/XML產品包括 Oracle 11g,IBM Boca for DB2。在專利方面,微軟一直在想辦法存儲RDF三元組,以及將SPARGL轉換成SQL。

實體-屬性-值存儲

實體-屬性-值存儲
   實體-屬性-值存儲(Entity-Attribute-Value ,簡稱EAV)源於資料庫管理技術中的關係模型,它們不具備完整的SQL資料庫功能,如基於非程式性和陳述性查詢語言的查詢模型,它們也不僅僅是一個簡單 的key-value資料存儲,EAV資料存儲主要包括亞馬遜的SimpleDB,Google AppEngine 資料庫和微軟的SQL資料服務。

  Google BigTable使用分散式檔案系統,它可以在數千台伺服器上 存儲非常大的資料集(PB大小),它基於Google AppEngine資料庫,Google自身也在使用它,和MapReduce一起,為網頁和應用如Google地球建立索引,BigTable是一個需 要大量分析的專案解決方案,如10億網頁和47.8億URL。對那些尋求BigTable開源替代方案的人而言,可以採用 Hadoop,Hypertable和HBase。Hypertable運行在分散式檔案系統(如HDFS)上。HBase資料通過表、行和多值列進行組 織的,它有一個集成式介面掃描行的範圍。Hypertable是用C++實現的,而HBase是用Java實現的。


Google AppEngine包括一個靈活的資料存儲,它專門為讀操作進行了優化,支援原子事務和一致性,可以和屬性一起存儲實體。它允許根據鍵和屬性過濾和排序, 內置21個資料類型,包括list,blob,postal address和geographical point。應用程式可以定義實體組作為執行事務更新的基礎。訪問Google AppEngine資料庫有程式設計介面,可以使用Python查詢物件。資料庫也是可程式設計的,可使用Java資料物件(JDO)和Java持久性API。雖 然AppEngine捆綁了一個資料存儲,AppScale專案提供了一個軟體操作其它資料存儲,如HBasem,Hypertable,MongoDB和MySQL。

  亞馬遜平臺
   亞馬遜SimpleDB是靈活的,基於ErLang實現的,適合於高可用應用的最終一致性資料存儲套件,資料模型提供了大項目收集域,實際上是包含了 key-value值的屬性的雜湊表,屬性可以有多個值,而且不需要聯合,查詢語言提供查詢返回一個專案名、所有的屬性、屬性數量以及屬性清單。資料是以 單個格式(無類型字串)存儲的,不應用約束,因此要得到準確的查詢結果,你必須將資料按規定格式存儲,例如使用0或ISO 8601:2004日期格式填充數位。

  Azure服務平臺
  微軟的Windows Azure和Google AppEngine以及Froce.com一樣,提供了一個雲端運算平臺,其中包括資料存儲和其他應用開發特性。微軟.NET服務提供了一個服務匯流排和認 證,Live服務就是通過搭積木的方式構建的應用。微軟在Azure雲中也提供了SharePoint服務和Dynamics CRM服務。和亞馬遜的S2和EC2類似,使用Azure服務平臺的通信是 基於Web Service模型的,但同時支援SOAP和REST。微軟Azure捆綁了SQL資料服務(SDS),通過ADO.NET資料服務將Azure表存儲進 行暴露。目前該資料庫僅提供了一個單一SQL Server實例,並限制了存儲空間最大為10GB。對於更大的需求,必須使用分區進行水準分割。

   對於那些使用了很長時間的工業標準資料庫的人,需要適應新的EAV存儲,最大的不同是EAV缺乏強大的類型,SimpleDB使用字串值存儲一切,因 此進行比較和排序時需要你用0進行位元數補齊。微軟的SQL資料服務提供Base64,布林,日期時間小數和字串等類型,Google AppEngine內置了20多個類型,比SimpleDB和SQL資料服務都要多。

分散式雜湊表和key-value資料存儲:memcached, MemcacheDB, Project Voldemort, Scalaris, and Tokyo Cabinet

分散式雜湊表和key-value存儲是構建可伸縮的,負載均衡的應用程式的工具,不強制執行資料完整性、一致性、和原子持久性檢查,它們有限地支援應 用做即席查詢和複雜分析處理。這樣的產品包括memcached, MemcacheDB, Project Voldemort, Scalaris, and Tokyo Cabinet。

  Memcached使用得非常普遍,廣泛用於資料庫驅動的 網站緩存解決方案,他是一個巨大的關聯陣列,使用GET或PUT功能訪問,用一個鍵值標識資料的唯一性。對於緩存查詢代價高的SQL語句返回的資訊特別有 用,如數量和總計。MemcacheDB是一個分散式key-value資料存儲,符合memcached協定,但使用了Berkeley資料庫進行資料 持久化存儲。

  Scalaris是一個分散式key-value存儲,它是用ErLang實現的,它為事務實現了無阻塞提交協定,使用 Web介面,你可以讀寫key-value值,每個操作都是一個原子事務。使用Java可以執行更複雜的事務。Scalaris具有很強的一致性,支持對 稱複製,但沒有持久性存儲。

  開源的Tokyo Cabinet資料庫key-value存儲目前在網上很多社區討論得火熱,它的速度快得驚人,使用雜湊表引擎存儲1百萬條記錄只需要0.7秒,使用B叉 樹引擎時也只需要1.6秒。資料模型是每個鍵都有一個值,它支持LZW壓縮,當鍵排好序後,可以進行首碼和範圍匹配,在處理事務時,它可以在寫入日誌和影 式分頁之前寫入。

  Tokyo Tyrant是 Tokyo Cabinet的一個資料庫伺服器版本,它主要用於高容量應用中緩存SQL資料庫。

  有些產品支援基於鍵範圍的查詢,但即席查詢操作和總計操作(求和,平均數和分組)需要程式設計實現,因為沒有內置這些功能。

Database

MemCachedb, Tokyo Cabinet (Tokyo Tyrant), Redis

Plunk: LightCloud

CouchDb

MongoDb

Cassandra

SimpleDB (Amazon)

InfoGrid, Neo4J,
HypergraphDB
Twitter's FlockDB

http://www.slideshare.net/thobe/nosqleu-graph-databases-and-neo4j

2010年5月30日 星期日

Java Thread persistence

Sumatra, Wasp, JavaGo, Brakes, JavaGoX, Merpati

2010年5月7日 星期五

Graph Database

FirstSQL
H2

Neo4J
Redis
Inforgrid
HyperGraphDb
Sones GraphDb
Franz AllegroGraph

Twitter FlockDb

Apache : CachoDb
Facebook: Cassandra
Amazon: Dynamo

2008年11月29日 星期六

Cloud Computing

1.MapReduce
Map -> 將大量的資料先分割多份資料(dispatch),這些資料再送出去處理(map function)
Map可以大量被parallelize
Reduce -> 將map function所處理的結果,依據相同的key排序後,再重新整合起來
Reduce不容易被parallelize,但由於有多個不同的整體task(先Map再Reduce),所以不同的Reduce也是可以放在不同的server上執行,並不會犧牲太多的parallelism

JobTracker:用來處理由用戶丟進來的所有Job(Job會被分割成Map與Reduce),會monitor task與TaskTracker的狀況
TaskTracker:執行Mapper與Reducer

2.DFS:包含GFS, Hadoop, CloudStore
將檔案切割成固定大小的chunk(或block),檔案就是會切割成各個block存放在不同的datanode server中
使用block而非用檔案本身,主要是同一個檔放在不同的datanode可以增加IO速度
同一block可以會被replicate到不同datanode中,增加可用性
分namenode與datanode
namenode儲存所有檔名與各個block的對應,可能會有Single Point Failure
當block被讀出時,會被check block是否正確(使用CRC32),若有問題則會從另一個datanode中讀出(此時該block應該會被重新replicate一份吧?)
3.Table: BigTable, HBase, HyperTable
主要是用在儲存structure data
使用row-key, coulmn-family:qualfier, column-family:qualfier, timestamp為結構
row key即是row的值,代表一個資料

coulmn-family:qualfier的qualfier也是該column的值
coulmn-family需要先定義,表示有哪一些的column
row, column-family, timestamp都會被indexing
資料也會有version(同一個row可以有許多的version)
儲存的方式也是有一個master server與Tablet server
Master server儲存row range放在哪個tablet server中
當增加row時,會由master server決定要放在哪個tablet server中,但若是超過row數目,row range就會被split成兩個,一個留在原來的tablet server,另一個就會被移到另外的tablet server中
4.Coordination: Google Chubby, Hadoop ZooKeeper
多台機器form成一個coordination system
多台機器會挑選出一個出一個leader
每台機器的資料都是一致的,且存放在memory
read access會由當地機器處理
write access會由leader處理,並確保順序正確

5.Jute(bridge legacy data into map-reducible data)
6.HOD(Hadoop On Demand, For effective cluster sharing)
Torque
(Torque– Use the Torque node health mechanism to disable/fix ‘sick’ nodes• Great reduction in amount of support issues• Address problems in bulk)

Maui

Nagios– Usual stuff– Custom hooks into Torque

Simon– Yahoo!’s distributed cluster and application monitoring tools– Similar to Ganglia– On the roadmap to be open sourced

Hadoop相關

Hadoop相關

1.ZooKeeper (Yahoo, Apache)

2.CloudStore

3.Pig (Yahoo)

4.HBase (Powerset.com)

5.JACL (from IBM)

6.Mahout

7.Tashi

8.Hive

2008年8月13日 星期三

2008年8月7日 星期四

隱私匿名

是否有機會
Browser->Proxy->Tor->自動選擇的open proxy
Tor可否用來做當成Wifi的抵禦工具
===========================
Tor
http://tor.eff.org
JAP
http://jackbin.blogspot.com/2008/03/jap.html
可使用JonDoFox(Firefox的JAP版)
Hotspot Shield
http://anchorfree.com
SmartHide
http://www.smarthide.com
無界瀏覽
http://www.wujie.net

======================
介紹網站
http://jackbin.blogspot.com/2007/09/tor.html
http://jackbin.blogspot.com/2008/03/jap.html

Proxy Server

Polipo
http://www.pps.jussieu.fr/~jch/software/polipo/
Privoxy
http://www.privoxy.org/user-manual/seealso.html
Squid
http://www.squid-cache.org/

Oops
http://zipper.paco.net/~igor/oops.eng/

proximodo
http://proximodo.sourceforge.net/

proxomitron
http://www.proxomitron.info/files/index.html

ProxyTrack
http://www.httrack.com/proxytrack/
HtTrack的sub-projects(WinHtTrack與WebHtTrack)

2008年6月26日 星期四

Cloud Computing Service Provider

1.Amazon Ec2
2.GAE
3.gogrid

支付工具

PayPal
Google Checkout
Amozon

2008年6月25日 星期三

非RDB的DB

以 BigTable 為基礎的 Apache HBase, Hypertable
Document-oriented database 類型的各式解決方案,如以 Erlang 開發的 Apache CouchDB
基於 Facebook Thrift 架構的 ThruDB與DistStore, Ruby 開發的 StrokeDB, 或 Java 為基礎的 FeatherDB
ZooKeeper
CloudStore

Amzon Web Service

Amazon Web Services
S3(Simple Storage Service),
SimpleDB,
EC2(Elastic Compute Cloud),
SQS(Simple Queue Service)
DevPay LS

Tools
1.Jets3t for (S3)
http://jets3t.s3.amazonaws.com/applications/applications.html#cockpit
2.typica
http://code.google.com/p/typica/downloads/list
3.CloudTools
http://code.google.com/p/cloudtools/

Java的多媒體衍生語言-Processing

http://www.proce55ing.net/

OpenFoundary的Java Tools

http://www.openfoundry.org/en/Search/newest-first/Page-7-30.html?searchphrase=any&searchword=java

Java字詞取出

http://rt.openfoundry.org/Foundry/Project/Download/?Queue=367

Java IDE

Cube-J https://cube-j.dev.java.net/
EasyEclipe http://www.easyeclipse.org/site/home/
DrJava http://drjava.org/
JIDE https://jide-oss.dev.java.net/

2008年6月22日 星期日

Java Functional Language

Jaskell
Scala
FuncionalJ http://functionalj.sourceforge.net/ch01.html

Java Source File Parser

QDox http://qdox.codehaus.org/

2008年6月19日 星期四

CI Tools (Continous Integration)

Hudson
CruiseControl

Gump (Apache)
Continuum (Apache)
DamageControl (not active)

2008年6月18日 星期三

Groovy AOP

Slingshot https://slingshot.dev.java.net/index.html
--> a framework to develop web application using AOP
AOP Blog http://chanwit.blogspot.com/search/label/AOP
Grail AOP

2008年6月14日 星期六

XML data framework

xaware (www.xware.org)
talend (http://www.talend.com/)
pentaho (http://www.pentaho.com/)

SmartClient
wicket

2008年6月7日 星期六

Functional Language

Scala

Traits
Featherweight Java http://afp.sourceforge.net/entries/FeatherweightJava.shtml
Self http://research.sun.com/self/
Cecil

Aspect相關

AspectJ
AspectWerkz
CaesarJ
HyperJ

2008年6月3日 星期二

Java Free Database

hsqldb --> good performance
db4o
mySQL
Mckoi
JavaDB(Derby)
SQLite
One$DB http://db.daffodilsw.com/Daffodil-DB-Open-Source/one$db-faqs.html

performance testing result --> http://www.polepos.org/

Naked Object Frameworks

1.Naked Objects http://www.nakedobjects.org/home/index.shtml --> Good?
Swing App. & Web
Apache License 2.0
2.Roma Framework http://www.romaframework.org/ --> Good?
Web App.
Apache License
3.OpenXava

Domain Object Explorer https://doe.dev.java.net/
JMatter(use Naked Objects) http://www.jmatter.org/
Swing App.
GPL or commercial
Trails http://www.trailsframework.org/
Web App.
GenericRCP https://genericrcp.dev.java.net/
Swing App.
based on SpringRCP
use RichJTable (https://richjtable.dev.java.net/)
Sanssouci http://sanssouci.sourceforge.net/
Swing App.
LGPL
Swing Bean Form Builder https://sbfb.dev.java.net/
Swing App.
Raskincenter.org ??

2008年5月10日 星期六

JavaOne2008的重點--JavaFX

JavaFX為此次JavaOne2008的主力重點。

SUN的執行副總裁Rich Green演示了JavaFX移動版本在Android手機上的應用。

JavaFX的預計發展:
  • 六月- JavaFX 桌面SDK 先期版本
  • 秋季- JavaFX 桌面1.0
  • 2009春 - JavaFX Mobile 和JavaFX TV

預期發表的項目

JavaFX
程式管理:避免程式執行當機
Java nio:到底哪一個nio framework最好用
Multi-Thread:真討厭,卻又不得不用,如何才可以用得好?
怕object被不同的thread搞爛掉嗎?那何不讓處理同一個object都屬於一個thread呢?
Why Threading? 必定是多件事,必定會互相干擾才需要multi-threading
1.Call method, 2. Pass Object
message passing,不是data protection,可能是同一個Thread
Passing Data to other
1.Call method, 2.透過Queue(但需要可以使用File做Backup), 3.傳到另一個Process
Java Forum
JavaFlow:好用的library
Dalma, Rife
NAM(Network attached memory): http://www.terracotta.org/confluence/display/explore/Demo
OpenSpace, Hadoop, GigaSpace, JavaSpace, GridGain, MogileFS(from memcached)

A collection of Concurrent and Highly Scalable Utilities. These are intended as direct replacements for the java.util.* or java.util.concurrent.* collections but with better performance when many CPUs are using the collection concurrently.
http://sourceforge.net/projects/high-scale-lib

Hadoop vs GFS
HBase vs Google's BigTable vs HperTable vs memcached vs C-Store vs MonetDB
1. Google GFS & BigTable
2. Hadoop & HBase/HyperTable
3. C-Store, MonetDB
4. memcached

XStream:好用的XML Serialization Library,替代jsx

memcached的衍生品
1.memcachedb
2.Togela Cache

JMF WebCam: http://ltu164.ltu.edu/itseng/version.htm

Java Template
Velocity, FreeMaker, WebMacro

為何寫此網誌?

程式設計師真可憐,每天都趕得要死。

業主更可憐!每個案子都出問題,罵不敢罵,打不敢打,只剩下拜託。

人生這麼可憐嗎?

為台灣進一份心力,讓大家找到過一點好生活,希望有能力的開發者一起共襄盛舉。