Hi Thomas,

Congratulations on the new release! Got an ETA on the source and DevKit?

Cheers,

Rowland

On 1 Aug 2008, at 18:09, Thomas Leonard wrote:

> GRIA 5.3 is now available for download:
>
>  http://www.gria.org/downloads
>
>
> Overview of changes in GRIA 5.3 (since 5.2)
>
> The main goal for the 5.3 release is to improve support for client
> application integration (e.g. portals) and for complex federation
> scenarios.
>
> Some client applications provide management of multiple different  
> users.
> For example, a "portal" providing a web interface to GRIA that is
> accessed using a normal web-browser. When the portal invokes an
> operation it does so on behalf of a particular user and needs to  
> take on
> the identity of that user. This means that we need to be able to set  
> the
> identity of the client dynamically on a per-invocation basis (rather
> than statically in the crypto.properties file).
>
> An example of a complex federation scenario would be a client  
> creating a
> new job, quoting an SLA with the provider of the job service (granting
> them access to CPU time) and a second SLA with the software vendor
> (granting them a license to use the software). In GRIA 5.2, the client
> can only select a single SLA when invoking a service.
>
> Another example would be access to some resources that are shared
> between many organisations (e.g. access to a database). The policy  
> rule
> on the shared resources would state that anyone with a SAML token
> asserting that they are in the group of permitted organisations is
> allowed in. We support that already, but in addition we would like the
> rule on the SAML-issuer service to state that anyone can get a token  
> if
> they have another token from their own organisation stating that they
> are a member of the organisation. This scenario allows each  
> organisation
> to manage its own members. This chaining of tokens is not supported in
> 5.2, requiring the client to get the first token manually.
>
> The new capabilities were requested by GRIA users to allow them to
> support new business models, improve overall B2B flexibility and  
> provide
> better vertical integration with existing tooling. However,  
> implementing
> these features has required incompatible changes to the 5.2 Java API.
>
> GRIA has always had a policy of maintaining SOAP-level  
> interoperability
> between minor releases (e.g. 5.0, 5.1 and 5.2 clients and services can
> all talk to each other) and 5.3 will remain compatible here.
>
> We have also had a policy of keeping good Java API compatibility, so
> that code written for the 5.0 API can be recompiled with minimal  
> changes
> on 5.1 and 5.2. For 5.3, the required updates to client code are more
> substantial than usual.
>
> While making these changes, we have also taken the opportunity to  
> remove
> some legacy interfaces that have accumulated over the years and to  
> make
> the code more modular.
>
>
> Changes affecting all GRIA services
>
> - When services act as clients to other services, they can now be
>  configured to include federation contexts and attribute tokens in the
>  messages they send. This is useful for some complex deployment
>  scenarios.
>
> - To simplify renaming of services, there is a new PBAC group called
>  "special:this-service", which always holds the identity of the  
> current
>  service. If you use this in PBAC rules, then you will not have to  
> update
>  the rules manually if the service's identity changes. The default  
> rules
>  created during installation all use this group.
>
> - A new type of access control rule, "NECESSARY" has been added,
>  allowing more complex policies to be expressed.
>
> - All SOAP operations now return the new resource state in a SOAP
>  header. This makes it easier for the client to display up-to-date
>  information.
>
>
> Changes to the Basic Application Services package:
>
> - The Data Service now exposes a REST interface, allowing clients to
>  manage data using plain HTTPS GET / PUT / DELETE operations. This is
>  considerably more efficient than using SOAP-with-attachments, and  
> also
>  works with non-SOAP clients.
>
>  To upload, you can use any standard HTTP client, such as Curl. e.g.
>
>    $ curl --cert me.crt --key me-private-key.pem -T file-to-upload \
>      
> https://myserver/gria-basic-app-services/data-stager/ff808181-152215bf-0115-221982b5-0002
>
>
> Changes to the Service Provider Management package:
>
> - Exporting and importing SLA templates has been improved.
>
> - The SLA template display can now display multiple constraints on a
>  single metric.
>
>
> Changes to the Client Management package:
>
> - A new Active Directory (Kerberos) single-sign-on service has been
>  added to the client management package. This service issues X.509
>  credentials based on users' local Kerberos or Active Directory
>  credentials. For example, a user can log in to their Windows desktop
>  by entering their Windows username and password as usual, and then
>  automatically be issued with an X.509 certificate which they can use
>  to access remote resources.
>
> - The old Private Account Service has been removed. You can use the
>  Membership and Registry services together to get a similar effect.
>
>
> Changes to the GRIA client:
>
> The bulk of the changes in 5.3 are to the client API. One exciting new
> feature is built-in support for Groovy, a scripting language with a
> Java-like syntax. For example, the following script will upload the
> "source.jpg" file, process it with the "paint" application on  
> griademo1
> and then download the result:
>
> def GRIADEMO1_JOB_SERVICE_WSDL = 
> "https://griademo1.it-innovation.soton.ac.uk/gria-basic-app-services/services/JobService?wsdl
>  
> "
> def JOB_TYPE = "http://it-innovation.soton.ac.uk/grid/imagemagick/paint 
> "
> def jobService =  
> serviceFactory.createServiceProxy(GRIADEMO1_JOB_SERVICE_WSDL)
> def swirlJob = jobService.createJob(JOB_TYPE, "My swirl job")
> swirlJob.input("inputImage").saveFromFile(new File("source.jpg"))
> swirlJob.startJob(null)
> while (swirlJob.stillActive()) {
>        println "Waiting..."
>        Thread.sleep(1000)
> }
> swirlJob.output("outputImage").read(new File("result.jpg"))
> swirlJob.destroy()
>
> To try it, save the script as "paint.groovy" and then run the client
> like this (you'll need a "source.jpg" file too, of course):
>
> $ gridcli ./paint.groovy
>
> The above script also demonstrates the new API. "serviceFactory" takes
> the URL of a service's WSDL and creates a proxy for it. Notice that,
> unlike the 5.2 API, 5.3 does not require you to store the proxy in a
> repository.
>
> For a longer introduction to the new API, see:
>
> http://www.gria.org/documentation/5.3/tutorial/java-interface-tutorial
>
> JavaDoc for the API is available here:
>
> http://archive.gria.org/javadocs/5.3/
>
> Other highlights include:
>
> - A new security configuration system gives you the option of using
>  a local keystore or your Windows credentials. Settings are now stored
>  using the Java preferences system, which puts them under
>  ~/.java/.userPrefs by default (or in the Windows registry on Windows
>  systems). Note that use of single-sign-on with Windows credentials
>  requires an installation of the GRIA client management package within
>  your organisation.
>
> - A flexible new IdentityProvider API allows you to control exactly
>  which identity should be used for each remote operation. This
>  replaces the static crypto.properties file with a selection of
>  providers (including single-sign-on with Kerberos / Windows Active
>  Directory, and support for writing web portals with multiple
>  concurrent identities).
>
> - Selection of federations (such as SLAs or trade accounts) and tokens
>  (e.g. SAML attributes) to be added to SOAP messages is now handled by
>  the new InvocationEngine system. This can be configured to support
>  very complex scenarios (such as a job service that requires an SLA,
>  which in turn requires a membership token for a group, which can only
>  be obtained using a membership token from another group, and so on).
>
> - A new plugin system. There are now two separate systems: one for
>  extending the proxy system (such as adding support for a new type of
>  service) and one for extending the Swing user interface. This allows
>  proxy plugins to be used on headless systems (where Swing cannot be
>  initialised). The new GridClientPluginManager makes it easy to
>  load GRIA plugins from your own applications.
>
>  Also, there is a new AbstractConversationBrowserPlugin base
>  class which plugins can extend. This avoids the need to implement
>  methods which you don't care about, and ensures that your plugin will
>  still work on newer versions of the client which define additional
>  hooks. Note that the methods plugins must implement have changed. The
>  base class defines all the methods in the old API as "final" so you
>  will get compile-time errors if you forget to update anything.
>
> - Support for running within .NET, using IKVM.
>
>
> Quick API FAQ (for people used to the old API):
>
> Q: What replaces StateRepository?
>
> A: A StateRepository created and stored proxies to remote resources.  
> It
>   has been split into two separate systems:
>
>   To create a proxy, use a ServiceFactory (if you have a WSDL URL)  
> or a
>   ProxyFactory (if you have an EPR). ServiceFactory uses a  
> ProxyFactory
>   internally.
>
>   To store EPRs for later, use a PersistentRegistry. Note that this
>   stores EPRs directly, not proxy objects.
>
> Q: Where do I put an SLA so the InvocationEngine can find it?
>
> A: The InvocationEngine has a search path of Registry objects. Ensure
>   this list includes a registry with the SLA. The registry may be
>   local or remote. Also ensure that you have set a
>   DefaultFederationSelector object on the InvocationEngine. The
>   default Groovy environment has this all configured for you.
>
> Q: I'm writing my own GRIA client application. How do I configure all
>   these objects?
>
> A: Have a look at the client-beans.xml file inside the gria-client-cli
>   jar. This is a Spring configuration file which contains the default
>   configuration for the GRIA client.
>
>
> Known issues:
>
> - Storing user preferences for the client doesn't work on some older
>  versions of Java 1.6 on Linux. You can either use Java 1.5 or newer
>  versions of 1.6.
>
> - On MacOS X, the platform scripts for the Job service must be  
> modified
>  slightly, as the default ones rely on some GNU extensions which are
>  not present on this platform.
>
>
> -- 
> Dr Thomas Leonard
> IT Innovation Centre
> 2 Venture Road
> Southampton
> Hampshire SO16 7NP
>
> Tel: +44 0 23 8076 0834
> Fax: +44 0 23 8076 0833
> mailto:[EMAIL PROTECTED]
> http://www.it-innovation.soton.ac.uk
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's  
> challenge
> Build the coolest Linux based applications with Moblin SDK & win  
> great prizes
> Grand prize is a trip for two to an Open Source event anywhere in  
> the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> gria-general mailing list
> gria-general@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gria-general





-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gria-general mailing list
gria-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gria-general

Reply via email to