1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
Apache Tuscany SCA Runtime
==========================
Tuscany SCA Native is an SCA (Service Component Architecture) runtime written
in C++ and integrated with the Apache HTTPD server.
It supports SCA components written in C++ and Python. Experimental support
for other programming languages is under construction. SCA bindings are
available for the JSON-RPC, ATOMPub and RSS protocols. User signin is
implemented using OpenID and OAuth.
Several useful SCA components are provided on top of the SCA runtime, which
can be used to help assemble distributed SCA composite applications:
Cache: key/value memory cache, using Memcached;
Chat: XMPP chat, using Apache Vysper and Libstrophe;
Constdb: fast persistent store for mostly constant data, using TinyCDB;
Filedb: key/value persistent store, using plain files;
Http: HTTP client, using Libcurl;
Smtp: SMTP client, using Libcurl;
Kvdb: fast key/value persistent store, using LevelDB;
Log: distributed logger, using Facebook Scribe;
Queue: AMQP queuing, using Apache Qpid/C;
Sqldb: SQL database, using PostgreSQL and PgBouncer;
Webservice: Web service gateway, using Apache Axis2/C.
These components present a simple ATOMPub REST interface, allowing you to send
a message to a queue, a chat connection, or add an entry to a cache or a
database for example, using a simple HTTP POST.
Getting the source code
=======================
To checkout the source code, do this:
git clone git://git.apache.org/tuscany-sca-cpp
or
svn checkout http://svn.apache.org/repos/asf/tuscany/sca-cpp tuscany-sca-cpp
To checkout the source code with commit access, do this:
git clone git://git.apache.org/tuscany-sca-cpp
cd tuscany-sca-cpp/.git
curl -OL http://git.apache.org/authors.txt
cd ..
git config svn.authorsfile .git/authors.txt
git config user.email <you>@apache.org
git config svn.rmdir true
git svn init --prefix=origin/ -s https://svn.apache.org/repos/asf/tuscany/sca-cpp
git svn rebase
Layout
======
Here's a rough guide to the Tuscany SCA source tree:
/
|-- trunk Master development branch
| |
| |-- kernel SCA runtime kernel
| |
| |-- modules Modules that plug into the runtime
| | |-- atom AtomPub data encoding
| | |-- edit Composite app editor
| | |-- http HTTP protocol
| | |-- java Support for Java components
| | |-- json JSON data encoding
| | |-- oauth User signin using OAuth
| | |-- opencl Support for OpenCL components
| | |-- openid User signin using OpenID
| | |-- python Support for Python components
| | |-- rss RSS data encoding
| | |-- scheme Support for Scheme components
| | |-- server Apache HTTPD server integration
| | |-- wsgi Python WSGI server integration
| |
| |-- components Useful SCA components
| | |-- cache Memcached key/value cache
| | |-- chat XMPP chat
| | |-- constdb TinyCDB constant persistent store
| | |-- filedb Plain file persistent store
| | |-- http HTTP client
| | |-- kvdb LevelDB key/value persistent store
| | |-- log Scribe logger
| | |-- queue AMQP message queue
| | |-- smtp SMTP client
| | |-- sqldb PostgreSQL database
| | |-- webservice Axis2 Web service gateway
| |
| |-- samples Sample Applications
| | |-- store-cluster Online store on a proxy + server + db cluster
| | |-- store-cpp Online store written in C++
| | |-- store-gae Online store written in Python, working on GAE
| | |-- store-java Online store written in Java
| | |-- store-nosql Online store using a NoSQL database
| | |-- store-python Online store written in Python
| | |-- store-scheme Online store written in Scheme
| | |-- store-sql Online store using an SQL database
| | |-- store-vhost Online store on virtual hosts
| |
| |-- macos Automated install on Mac OS X 10.1.7
| |-- ubuntu Automated install on Ubuntu 10.10
| |-- patches Temporary patches to some of the dependencies
|
|-- branches Topic and release branches
|
|-- tags Release tags
Building
========
See the INSTALL file at the root of the source tree.
Contributing to the project
===========================
To contribute to the project or report issues see the Tuscany development
mailing list:
dev@tuscany.apache.org
Archives:
http://www.mail-archive.com/dev@tuscany.apache.org
http://marc.info/?l=tuscany-dev
To subscribe send an email to:
dev-subscribe@tuscany.apache.org
|