Month: November 2011

Canonical XML

Amplify’d from en.wikipedia.org

Canonical XML specifies a number of other details, some of which are:

  • the UTF-8 encoding is used

  • line-ends are represented using the character 0x0A

  • whitespace in attribute values is normalized

  • entity references are expanded

  • CDATA marked sections are not used

  • empty elements are encoded as start/end pairs, not using the special empty-element syntax

  • default attributes are made explicit

  • superfluous namespace declarations are deleted

According to the W3C, if two XML documents have the same canonical form, then the two documents are logically equivalent within the given application context (except for limitations regarding a few unusual cases).

Read more at en.wikipedia.org

 

MS Word Tip: Update References all across the document Ctrl+A, F9

Handy shortcut

Amplify’d from www.legalandrew.com

You can update linked fields by selecting them and then pressing F9. You can also select all (by using CTRL+A) and press F9 to update all your fields. However, Dani discovered that footnotes will only update using this method if you first put the cursor in the footnotes area. Then pressing CTRL+A and F9 will update everything. Odd, but it works.

Read more at www.legalandrew.com

 

SCA, BPEL, BPMN

Good overview of BPEL: http://www.radikalfx.com/bpel/language.html

BPMN vs BPEL: http://www.infoq.com/articles/bpelbpm

Interestingly most Process Engines, including IBM’s Process Manager support direction execution of BPMN (exported as XPDL’s or directly drawn in the associated tooling)

Another standard at play is SCA which was developed jointly by many SOA integration vendors. It plays a complimentary role to BPEL.

Amplify’d from osoa.org

SCA and BPEL – Rivals or Friends?

Sometimes, when talking about composite service-based applications, people get confused about the roles of SCA and of BPEL and consider that these two technologies are in conflict or that they are trying to perform the same roles.  This isn’t the case – far from being rivals, SCA and BPEL are firm friends and are complementary parts of a business solution, each with its own role to play.

Putting this in another way, SCA is concerned with what components exist in the business application, what services those components offer, what service references those components depend on, how the components are connected together, what endpoint addresses and communication methods are used for the connections, what policies are applied to components and to the connections between them. BPEL is concerned with business logic and the sequences of operations which are performed to execute an individual business process. BPEL processes provide and consume other services through partnerLinks, but these are abstract interfaces that must be connected to actual endpoints and communication methods through configuration.

Read more at osoa.org

 

SAP Integration: Initial Load and Delta Load

Amplify’d from free-sap-ebook.com

From an ERP application perspective this is an extremely important aspect the data exchange among the systems is kind of back-bone and the crux of very existence of the application. This data exchange can be of following types between other systems and CRM:

  1. Initial data transfer which is also called as Initial Load in SAP terminology

  1. Intermediate synchronization of data among the applications also called as Delta Load in SAP terminology

  1. Synchronization

Read more at free-sap-ebook.com

 

Portlet Types in Weblogic Portal

Amplify’d from docs.oracle.com


The following portlet types are supported by WebLogic Portal:

  • Java Server Page (JSP) and HTML Portlets – JSP portlets and HTML portlets point to JSP or HTML files for their content.

  • Java Portlets (JSR 168) – Java portlets produced using WebLogic Portal can be used universally by any vendor’s application server container that supports JSR 168.

  • Java Page Flow Portlets – Java page flow portlets use Apache Beehive page flows to retrieve their content.

  • Java Server Faces (JSF) Portlets – JSF portlets produced using WebLogic Portal conform to the JSR 127 specification.

  • Browser (URL) Portlets – Browser portlets display HTML content from an external URL; no development tasks are required to implement them.

  • Clipper Portlets – A clipper portlet is a portlet that renders content from another web site. A clipper portlet can include all or a subset of another web site’s content using a process called “web clipping.” Clipper portlets are discussed in Creating Clipper Portlets.

  • Struts Portlets – Struts portlets are based on the Struts framework, which is an implementation of the Model-View-Controller (MVC) architecture.

  • Remote Portlets – WebLogic Portal’s remote portlets conform to the WSRP standard; they can be hosted within a producer application, and surfaced in a consumer application.

Read more at docs.oracle.com

 

JMS- Quick Refresher

Extracts from the original Sun J2EE 1.3 JMS documentation

Amplify’d from docs.oracle.com

A connection factory is the object
a client uses to create a connection with a provider. A connection factory
encapsulates a set of connection configuration parameters that has been defined
by an administrator. A pair of connection factories come preconfigured with
the J2EE SDK and are accessible as soon as you start the service. Each connection
factory is an instance of either the QueueConnectionFactory or
the TopicConnectionFactory interface.

j2eeadmin -addJmsFactory jndi_name queue
j2eeadmin -addJmsFactory jndi_name topic
Context ctx = new InitialContext();
QueueConnectionFactory queueConnectionFactory = 
  (QueueConnectionFactory) ctx.lookup("QueueConnectionFactory");
TopicConnectionFactory topicConnectionFactory = 
  (TopicConnectionFactory) ctx.lookup("TopicConnectionFactory");
3.1.1   Connection Factories

3.1.2   Destinations

A destination is the object a client
uses to specify the target of messages it produces and the source of messages
it consumes. In the PTP messaging domain, destinations are called queues,
and you use the following J2EE SDK command to create them:

j2eeadmin -addJmsDestination queue_name queue
Queue myQueue = (Queue) ctx.lookup("MyQueue");
3.2   Connections

A connection encapsulates a virtual connection
with a JMS provider. A connection could represent an open TCP/IP socket between
a client and a provider service daemon. You use a connection to create one
or more sessions.

QueueConnection queueConnection =
  queueConnectionFactory.createQueueConnection();
TopicConnection topicConnection = 
  topicConnectionFactory.createTopicConnection();
A session is a single-threaded context
for producing and consuming messages. You use sessions to create message producers,
message consumers, and messages. Sessions serialize the execution of message
listeners; for details, see Section 3.5.1,
“Message Listeners.”
Sessions, like connections, come in two forms,
implementing either the QueueSession or the TopicSession
interface. For example, if you created a TopicConnection object,
you use it to create a TopicSession:
3.3   Sessions
3.4   Message Producers

A message producer is an object created
by a session and is used for sending messages to a destination. The PTP form
of a message producer implements the QueueSender interface. The
pub/sub form implements the TopicPublisher interface.

QueueSender queueSender = queueSession.createSender(myQueue);
TopicPublisher topicPublisher = topicSession.createPublisher(myTopic);
topicPublisher.publish(message);
3.5.1   Message Listeners
queueConnection.start();
Message m = queueReceiver.receive();
topicConnection.start();
Message m = topicSubscriber.receive(1000); // time out after a second

A message listener is an object that
acts as an asynchronous event handler for messages. This object implements
the MessageListener interface, which contains one method, onMessage.
In the onMessage method, you define the actions to be taken when
a message arrives.

3.5.2   Message Selectors

If your messaging application needs to filter the messages it receives, you can use a JMS API message selector, which allows a message consumer to specify the messages it is interested in. Message selectors assign the work of filtering messages to the JMS provider rather than to the application. For an example of the use of a message selector, see Chapter 8.

3.6   Messages

A JMS message has three parts:

3.6.3   Message Bodies

Table 3.2:    JMS Message Types

TextMessage

MapMessage

BytesMessage

StreamMessage

ObjectMessage

Read more at docs.oracle.com

 

myth: an XML namespace must produce a document

However, the namespace specification does not require nor suggest that the namespace URI be used to retrieve information; it is simply treated by an XML parser as a string.

Amplify’d from en.wikipedia.org

A namespace name is a uniform resource identifier (URI). Typically, the URI chosen for the namespace of a given XML vocabulary describes a resource under the control of the author or organisation defining the vocabulary, such as a URL for the author’s Web server. However, the namespace specification does not require nor suggest that the namespace URI be used to retrieve information; it is simply treated by an XML parser as a string. For example, the document at http://www.w3.org/1999/xhtml itself does not contain any code. It simply describes the XHTML namespace to human readers. Using a URI (such as “http://www.w3.org/1999/xhtml”) to identify a namespace, rather than a simple string (such as “xhtml”), reduces the possibility of different namespaces using duplicate identifiers.

Read more at en.wikipedia.org

 

misnomer: URI protocols / URI schemes

Amplify’d from en.wikipedia.org

URI schemes are frequently erroneously referred to as “protocols”, or specifically as URI protocols or URL protocols, since most were originally designed to be used with a particular protocol, and often have the same name. The http scheme, for instance, is generally used for interacting with Web resources using HyperText Transfer Protocol. Today, URIs with that scheme are also used for other purposes, such as RDF resource identifiers and XML namespaces, that are not related to the protocol. Furthermore, some URI schemes are not associated with any specific protocol (e.g. “file“) and many others do not use the name of a protocol as their prefix (e.g. “news“).

Read more at en.wikipedia.org