Hi, Raymond: Thanks for your quick response and detailed explainations. Many confusions in my mind has been solved.
For the client implementation, I am thinking we will use a non-Tuscany client to connect to the SCA domain by web services. It is more closer to our technical background. BTW, you mention that we can model the client as a SCA component. Is that possible for an environment where clients can be plug in/out very frequently? How the other components in the SCA domain locate a specific client? And how the service components react when some notifications want to send to a client while it has gone offline? From this point of view, I have the image that SCA domain best filled with always-online services. Is that feeling right? Thanks, Yang Sun 2008/6/1 Raymond Feng <[EMAIL PROTECTED]>: > Hi, > > Thank you for your interests and good comments about Tuscany. Please see my > comments in line below. > > Raymond > -------------------------------------------------- > From: "Sun Yang" <[EMAIL PROTECTED]> > Sent: Saturday, May 31, 2008 4:57 AM > To: <tuscany-user@ws.apache.org> > Subject: [Help] Two questions on Tuscany SCA > > Hi, all: >> >> Our project want to use Tuscany as the integration middleware, and we do >> some investigation on SCA topics. We still have some confusions on SCA, >> pls >> help us to check whether we are on the right track. >> >> Currently, we are thinking the following deployment models: >> 1. put all services in a single Tuscany domain; >> 2. make some services as front controllers (and exposes them as web >> services) for client to connect; >> 3. non-tuscany client connects to the exposed web-services to access >> business functions. >> > > Your ideas make sense to me. Keep in mind, the SCA domain is a logical > collection of composites and it's the boundary of wiring and management. > Simply speaking, SCA domain is a metadata manager and it manages the > following entities: > > * Contributions: Physical packages that contains artifacts such as Java > classes, WSDL/XSDs, composite files, BPEL scripts. They can be physically > distributed and the SCA domain basically has the knowledge of the URLs. > * Composites: Logical assembly/composition of the service components. > Deployable composites can be declared in contributions or it can generated > at deployment time. > * Nodes: physical runtimes that can run the resolved deployable composites > (Thinking of an image that contains the deployment composite file and the > required contribution URLs). > > How it maps to a physical network of computers depends on the runtime > support. On the boundary of a SCA domain, SCA communicates with external > clients and services using various bindings which represent protocols such > as RMI/IIOP, Web Services and JSONRPC. > > >> Qustions we have: >> 1. Can we join the client to Tuscany domain? Or shall we keep using >> web-services to connect the client to the domain? >> > > The term of "client" is a bit vague :-). If you model/implement a client as > a SCA component, then it can be part of the SCA domain. All the service > composite/components can be physically run on nodes which are hosted by > different machines on the network. We can also model some business function > units as components (for example, implementation.widget or > implementation.ejb) and these components can be run in a container without > SCA. > > The reason for this question is that I cannot find an example in samples >> directory that demonstrate a standard java client startup and join a >> established domain. Did I miss something? >> > > I assume we are talking about a node joining the SCA domain. There are > multiple ways depending on how it's implemented. For example, if we use a > centralized repo to represent a SCA domain, then accessing the repo is > "joining" the domain. If we have a DomainController, then connecting to the > controller and pull images to run is "joining" the domain. If we use > discovery-based approach, then the node broadcasts its presence and > "joining" means it's accepted by the group. > > In Tuscany today, we already have the domain admin application. It can be > used to manage the SCA domain, such as Add/Remove contributions, Add/Remove > deployable composites to SCA domain composite, Add/Remove nodes, Start/Stop > the nodes. Please see the store tutorial: > http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/tutorial/. > > >> 2. If stick to the way that non-tuscany client connect to Tuscany domain >> using web-services, we are not sure whether the following solution for >> authentication is correct. The scenario is that we need to do a series of >> communication with the front controller. We don't want to have every ws >> communication with username/password specified. After reading the spec, we >> have the idea of using "conversation scope". pls help us to check whether >> it >> is the standard way to do this kind of authentication job. >> 1) call login(username, password) web services which defines as >> "Conversational" and has the scope of "Conversation". The result will be >> stored in some private variable; >> 2) client calls following business services without attaching the auth >> information (because the auth info is in the conversation scope); >> 3) client calls business services with "endConversation"(such as logout) >> annotation to stop the conversation and exit. >> I am not sure if that is the standard way to do authentication and cache >> the >> result. Could you help us verify it? >> > > I'm not an expert in this area. On the surface, your proposal makes sense > to me. So basically, you want to associate some state (auth data) with the > HTTP session. You can probably use the Conversation-scoped component to keep > the HTTP session. > > >> Tuscany is a really good product. And I really appreciate your help in the >> past few months. >> > > We'll try our best. Helping you out is helping the project itself and the > community. > > >> Best Regards, >> Yang Sun >> >>