<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>arul @ flux</title>
    <link>http://blogs.fluxcorp.com/blogs/arul</link>
    <description>Arul is a software developer at Flux. He is very passionate about Java and JEE technologies.</description>
    <pubDate>Mon, 04 Aug 2008 22:24:41 GMT</pubDate>
    <generator>Clearspace 1.6.0 (http://jivesoftware.com/products/clearspace/)</generator>
    <dc:date>2008-08-04T22:24:41Z</dc:date>
    <item>
      <title>Security in remote engines and agents</title>
      <link>http://blogs.fluxcorp.com/blogs/arul/2008/08/14/security-in-remote-engines-and-agents</link>
      <description>Message level security focuses on securing the end to end communication within a single security context. It could be implemented using a combination of techniques such as message integrity, security tokens to verify messages, and message confidentiality.&lt;br /&gt;
&lt;br /&gt;
Using this approach guarantees users that the communication between the client applications and the Flux engine and agent are secured and messages can never be tampered during transmission. This also ensures only a Flux client can handshake with the Flux engine or agent.&lt;br /&gt;
&lt;br /&gt;
Flux implements message level security in 8.0 release for all communication between the remote engine and clients, including agents. In traditional Flux application level security, the operations on an engine is typically secured using JAAS modules (login/logout needs to be performed on every invocation on the engine), supported in both local and remote Flux engines. &lt;br /&gt;
&lt;br /&gt;
Flux uses UsernameToken profile as defined in the OASIS WS-Security specification "&lt;a class="jive-link-external" href="http://www.oasis-open.org/committees/download.php/16782/wss-v1.1-spec-os-UsernameTokenProfile.pdf"&gt;Username Token Profile 1.1&lt;/a&gt;"&lt;br /&gt;
for engine-agent and engine-client communications. This specification addresses how a web service consumer can supply a UsernameToken as a means of identifying the requestor by "username", and using a password to authenticate that identity to the web service producer.&lt;br /&gt;
&lt;br /&gt;
With this enhancement, agents can now securely communicate with remote engines and engines can securely communicate with agents. Flux clients communicating with the remote engines will be secured too. This opens up multiple options for users needing to secure remote engines either using application level security or message level security or both.&lt;br /&gt;
&lt;br /&gt;
In essence, message-level security prevents clients from accessing remote engine or agent operations anonymously without providing a valid UsernameToken.</description>
      <category domain="http://blogs.fluxcorp.com/blogs/arul/tags">8.0</category>
      <category domain="http://blogs.fluxcorp.com/blogs/arul/tags">security</category>
      <pubDate>Thu, 14 Aug 2008 16:03:45 GMT</pubDate>
      <author>arul</author>
      <guid>http://blogs.fluxcorp.com/blogs/arul/2008/08/14/security-in-remote-engines-and-agents</guid>
      <dc:date>2008-08-14T16:03:45Z</dc:date>
      <clearspace:dateToText>04-Aug-2008 16:24</clearspace:dateToText>
      <wfw:comment>http://blogs.fluxcorp.com/blogs/arul/comment/security-in-remote-engines-and-agents</wfw:comment>
      <wfw:commentRss>http://blogs.fluxcorp.com/blogs/arul/feeds/comments?blogPostID=1080</wfw:commentRss>
    </item>
    <item>
      <title>REST Action in Flux 8.0</title>
      <link>http://blogs.fluxcorp.com/blogs/arul/2008/06/19/rest-action-in-flux-80</link>
      <description>REST is an architectural style in which software components are modeled as resources accessed over the web which are identified by unique URIs. These resources are traditionally accessed using HTTP. For example, the typical CRUD operations involve read (HTTP GET), create (HTTP POST), update (HTTP PUT), delete (HTTP DELETE). All these operations can be modeled using REST interface. There are some popular web search APIs which are modeled as REST interfaces. One such example is Yahoo Search API (&lt;a class="jive-link-external" href="http://developer.yahoo.com/search/rest.html"&gt;http://developer.yahoo.com/search/rest.html&lt;/a&gt;). &lt;br /&gt;
&lt;br /&gt;
Flux 8.0 will ship with a built-in REST Action. The REST Action will allow you to invoke REST services from flow charts and use the result, or response, from the REST service throughout subsequence actions in the flow chart.&lt;br /&gt;
&lt;br /&gt;
The REST service URL is followed by the actual query parameters, which take the form argument=value. Multiple parameters are separated by an ampersand (&amp;#38;). Here is how the REST Action can be used with in a flow chart in Flux 8.0.&lt;br /&gt;
&lt;br /&gt;
Engine engine = new Engine();&lt;br /&gt;
&lt;br /&gt;
FlowChart job = new FlowChart("REST Action Example");&lt;br /&gt;
&lt;br /&gt;
// Create the Rest Action&lt;br /&gt;
RestAction restAction = job.makeRestAction("REST GET Action");&lt;br /&gt;
&lt;br /&gt;
// Specify the URL the rest action is to use.&lt;br /&gt;
restAction.setUrl("http://search.yahooapis.com/WebSearchService/V1/webSearch");&lt;br /&gt;
&lt;br /&gt;
// Specify the action type.&lt;br /&gt;
restAction.setActionType("get");&lt;br /&gt;
&lt;br /&gt;
// Specify the arguments to pass to the method.&lt;br /&gt;
Properties inputParams = new Properties();&lt;br /&gt;
inputParams.put("appid", "YahooDemo");&lt;br /&gt;
inputParams.put("query", "rest");&lt;br /&gt;
inputParams.put("results", "2");&lt;br /&gt;
&lt;br /&gt;
restAction.setInputParams(inputParams);&lt;br /&gt;
&lt;br /&gt;
// Create a Console Action to display the result from the Web service&lt;br /&gt;
ConsoleAction consoleAction = job.makeConsoleAction("Display REST Action Result");&lt;br /&gt;
&lt;br /&gt;
// Variable susbtitution is used to access the RESULT flow context variable&lt;br /&gt;
consoleAction.setMessage("The result from the REST service is: ${result}\n");&lt;br /&gt;
&lt;br /&gt;
// Make the REST Action flow into the Console Action&lt;br /&gt;
restAction.addFlow(consoleAction);&lt;br /&gt;
&lt;br /&gt;
// Schedule the job for immediate execution.&lt;br /&gt;
String jobId = engine.put(job);&lt;br /&gt;
&lt;br /&gt;
// Start the engine.&lt;br /&gt;
engine.start();&lt;br /&gt;
&lt;br /&gt;
// Give the engine a chance to run the job, up to 5 seconds.&lt;br /&gt;
engine.join(jobId, "+5s");&lt;br /&gt;
&lt;br /&gt;
// Clean up the resources.&lt;br /&gt;
engine.dispose();&lt;br /&gt;
&lt;br /&gt;
This program invokes the Yahoo Search API and the response is printed to the console.&lt;br /&gt;
&lt;br /&gt;
If you have requirements to integrate a Flux application with a RESTful service, REST Action comes handy in providing this simple integration.</description>
      <category domain="http://blogs.fluxcorp.com/blogs/arul/tags">flux</category>
      <category domain="http://blogs.fluxcorp.com/blogs/arul/tags">8.0</category>
      <category domain="http://blogs.fluxcorp.com/blogs/arul/tags">rest</category>
      <pubDate>Thu, 19 Jun 2008 21:34:36 GMT</pubDate>
      <author>arul</author>
      <guid>http://blogs.fluxcorp.com/blogs/arul/2008/06/19/rest-action-in-flux-80</guid>
      <dc:date>2008-06-19T21:34:36Z</dc:date>
      <clearspace:dateToText>02-Jun-2008 14:02</clearspace:dateToText>
      <wfw:comment>http://blogs.fluxcorp.com/blogs/arul/comment/rest-action-in-flux-80</wfw:comment>
      <wfw:commentRss>http://blogs.fluxcorp.com/blogs/arul/feeds/comments?blogPostID=1072</wfw:commentRss>
    </item>
    <item>
      <title>Flux 8.0 remoting made simpler</title>
      <link>http://blogs.fluxcorp.com/blogs/arul/2008/05/06/flux-80-remoting-made-simpler</link>
      <description>Flux remoting has always been a performance challenge due to the inherent nature of RMI technology. Accessing a flux engine across the firewall requires network ports to be opened and monitored. There are many pain points using RMI as it is generally resource intensive due to network object serialization. Furthermore, the RMI registry can be difficult to administer at times. Scalability and performance of RMI servers across networks has been a concern in a high-performance distributed computing.&lt;br /&gt;
&lt;br /&gt;
We are capitalizing on the Web and its continued success in various forms. Providing HTTP transport for accessing remote engines across firewalls is a compelling solution for us. This approach provides more freedom to developers as well as network admins. &lt;br /&gt;
&lt;br /&gt;
Beginning with the forthcoming Flux 8.0, we have replaced Flux's use of RMI by an HTTP transport. Developers are no longer required to code against remote exceptions. Flux engine methods previously threw flux.EngineException and java.rmi.RemoteException in their method signatures. Now these same methods just throw flux.EngineException. That's one less exception to handle.&lt;br /&gt;
&lt;br /&gt;
By updating Flux remoting from RMI to an HTTP transport, Flux code is easier to write, understand, and maintain. Furthermore, network administration is simplified.</description>
      <category domain="http://blogs.fluxcorp.com/blogs/arul/tags">flux</category>
      <category domain="http://blogs.fluxcorp.com/blogs/arul/tags">8.0</category>
      <pubDate>Tue, 06 May 2008 23:22:02 GMT</pubDate>
      <author>arul</author>
      <guid>http://blogs.fluxcorp.com/blogs/arul/2008/05/06/flux-80-remoting-made-simpler</guid>
      <dc:date>2008-05-06T23:22:02Z</dc:date>
      <clearspace:dateToText>06-May-2008 15:36</clearspace:dateToText>
      <wfw:comment>http://blogs.fluxcorp.com/blogs/arul/comment/flux-80-remoting-made-simpler</wfw:comment>
      <wfw:commentRss>http://blogs.fluxcorp.com/blogs/arul/feeds/comments?blogPostID=1065</wfw:commentRss>
    </item>
  </channel>
</rss>

