incubator-stonehenge-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ming Jin <skyai...@gmail.com>
Subject Re: Proposal about setting configuration service url
Date Fri, 21 Aug 2009 12:27:18 GMT
Hi Avantika,
The change of ConfigService should appear in all layers(UI Client/BSL/OPS)
and in all platforms of Stocktrader (.NET/Metro/WSO2/PHP), which means if we
changed the URL of ConfigService from UI, then the URL used in BSL and OPS
would be changed correspondingly too, no matter which platform is used.

There are two constraints in current applications:

   1. only 1 single place from UI to change the URL
   2. 3 layers and more than 4 implementations of Stocktrader

During the runtime, the client/BSL/OPS should fetch the URL of ConfigService
from only one place of which the value is changed from the UI client.
Otherwise, if we have multiple places to hold the value of configservice, we
need to spend extra effort to maintain the values for
configurations synchronous.

Therefore, we'd better have only one entry in database to keep the URL of
ConfigService during the runtime. UI client/BSL/OPS read the value, when
talk to the corresponding BSL/OPS.

For your questions:
1. .NET/Metro/WSO2/PHP can have their default Config Service stored in their
own configuration files.

2. The reasons why we need a new table are:

   - Consistency: the table services is used by config service, while the
   new table of config service is to be used by client/bsl/ops.
   - Isolation: the config service should only access the table services,
   while the client/bsl/ops can only access the new table.
   - loosely coupled: if we isolate the config service from other modules in
   both application and database layers, then we can divide our database into
   independent ones, each of which is used by specific
   application(client/bsl/ops/config service).

Please let me know if you have any concerns. Thanks

-- Ming Jin

On Thu, Aug 20, 2009 at 3:38 AM, Agrawal, Avantika <
aagrawal@wharton.upenn.edu> wrote:

>  +1 on having a single location to set the ConfigService URL! Something
> like this had occurred to me while I was developing the .NET patch for this
> feature, but did not have the time to follow through.
>
>
>
> I have some questions about this approach though:
>
> 1-      What will be the default ConfigService in case the user does not
> manually enter the Config tab from the UI? Since the database is shared
> between implementations, wouldn’t this impose a single ConfigService on the
> other implementations? For instance if the default ConfigService url is the
> .NET one – then even the METRO client would need to have the .NET services
> running before being able edit  the ConfigService in the database from the
> Config tab.
>
> 2-      For the sake of consistency, could we somehow merge this new table
> with the SERVICES table? since the ConfigServices are also still services,
> we could enter the different URLs into the SERVICE table as DOTNET_CONFIG,
> METRO_CONFIG, etc.  Then, perhaps we could we have another table which
> specifies which implementations map to which ConfigServices. I know this
> sounds a little bit more complicated, but it would allow us specify the
> correct defaults for each implementation and it seems a little more
> consistent with the current database design.
>
>
>
> Those were my thoughts. I am unsure whether the intention is to have a
> single ConfigService for all the platforms. If that is the case, then the
> previously suggested approach sounds perfect. Great idea!
>
>
>
> Thanks,
>
> Avantika
>
>
>
> *From:* Ming Jin [mailto:skyairmj@gmail.com]
> *Sent:* Wednesday, August 19, 2009 1:24 PM
>
> *To:* stonehenge-dev@incubator.apache.org
> *Cc:* Kent Brown; Harold Carr; Mo Li; Ming Jin; ynjia@thoughtworks.com;
> Agrawal, Avantika
> *Subject:* Proposal about setting configuration service url
>
>
>
> Hi, there
>
>
>
> We are working on the function of setting the Configuration Service URL on
> the UI
>
>
>
> We found that in the trade client of .NET version, when we set the
> Configuration Service URL on the UI, it only changes the Configuration
> Service URL for the trade client but not the BS, which still gets the
> Configuration Service URL from the config file. Therefore we have to set the
> Configuration Service URL twice in two difference places. As a result, the
> trade client and BS may use different config service.
>
>
>
> What we want to propose is to save the URL into DB.  In this way we just
> only need to set the Configuration Service URL for both trade client and BS
> once.
>
>
>
> The proposal about setting Configuration Service URL is as following:
>
> 1.        Add a new table named ‘configService’ in DB. The new table has
> two columns (NAME, URL). And we need constrain the table only has one
> record.
>
>             In this way, the trade client and BS will get the config
> service URL from configService table by default.
>
> 2.        When user enters Configuration Service URL, and clicks the ‘Set’
> button.
>
> 3.        The Configuration Service URL will be saved to table
> ‘configService’, like
>
> ('config_service',  http://localhost:7000/tradeconfigservice’).
>
> 4.        Trade client and BS will get the Configuration Service URL from
> table ‘configService’.
>
>
>
> In this case, all the trade client and BS of different version(such as
> .NET, Metro) will use the same config service, and we only need to set the
> Configuration Service URL once.
>
>
>
> Would you like to give us some suggestion about this proposal?
>
>
>
> Thanks a lot .
>
>
> --
> Ming Jin
>
> Consultant
> Thoughtworks, Inc
>



-- 
Ming Jin

Consultant
Thoughtworks, Inc

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message