4 Steps To Better SOA

In NASA's effort to integrate data from many different sources, the space agency wanted to take data collected during a feild expedition, including sample data, photos, voice recordings, and GPS information and integrate it with satellite imagery, GIS data, and information about the characterstics of the minerals found in the samples. Not only were the types of information heterogeneous, but the formats ranged widely from spreadsheet files to SQL databases to WebPages.

It's a common programming problem. Lets say, you have feild in two seperate databases, that are both named 'temp', is it legitimate to assume they represent the same quantity and can be integrated together? One might represent temperature and other temporary value. To properly combine these 2 fields, you really need to understand what the data represents.

At NASA and other large entities - both in government and business - integrating heterogeneous data is a challenge, but it's one that must be faced in order to easily share information internally and with outside partners. The integration challenge is one reason why NASA and many organizations are turning to SOA combined with semantic integration. As we know SOA consists of services that offer interoperability capabilities built into the network. While SOA's business-centric approach has sparked enthusism, the challenge is now to build in inference capabilities to make intelligent and dynamic selection of Web services possible. This is where semantic technology - the modelling of an area of knowledge like biology or economics as close to natural language as possible - comes into play.

Semantic technology
A SOA platform with built-in inference capabilities can let companies make runtime decisions based on service capabilites and invocation context where tasks are executed based in pre-defined conditions. On its own, SOA does'nt have this capability, but with the addition of inference, SOA gets the semantic richness it needs to make runtime decisions. Semantic integration techniques build context and awareness of the underlying services and data in a metalayer.

Ontology-Enabled SOA
Semantic integration techiniques are based on the idea that it's possible to find patterns in the origin of various pieces of heterogeneous data. Once done, then it's possible to define these patterns using a metamodel, and then connect several metamodels by defining how they relate to one another. One emerging approach to semantic integration is ontology. Ontology is a structured representation of a domain- by which we mean an area of knowledge like biology or economics - in terms of classes and interrelationships between the classes that can be defined using the XML-based Web Ontology Language.

There are 4 steps in building an ontology-enabled SOA:
Step 1 : Analyze the Business Process: In execution of business process, conditions may represent intelligent routing decisions requiring semantic power. We define these as "points of variability", or areas where inference capability is required. Future business needs may mandate additional variables or new values for existing variables. Identify them.

Step 2: Construct the Ontology Model: Ontology is defined in terms of concepts and relationships. Ontology concepts are implemeted in classes. Relationships are implemeted in terms of "object properties" and "data types properties".

Step 3: Create Context-Sensitive Invoker: Creating the runtime component that consults the ontology and makes dynamic context-sensitive service invocations in the next step. The business process flow can be encapsulated as a linear process in a BPEL, block.

Step 4: Web Services: provide the actual business service. They're the "consuming" point, invoked to acheive business functionality. The policy that operates on the Web Services is part of task required to incoporate a new service end point.

Final Word:
Ontology can be used to enable semantic integration by modeling the business domain process as a workflow, and constructing an ontology model along-side the business process modeling. The classes and relationships of the ontology model are created based on the domain knowledge and the business process.

Case study : Novell - "Zero Day Start"

A slightly old case study (2003)...however it shows the challenges the corporate world used to face then....and even now....and spends millions of dollars to get it sorted.....the case described by Art Vandenberg was similar to this one....based on a "authoritative" employee directory (in our case it was the PeopleSoft HR database) as the starting point for other employee attribute synchronization across the corporate....


Given above is how the old Novell IS&T infrastructure looked like prior to the one Net solution (a classic Systems Integration Solution Implementation). This was a nightmare and very costly to maintain the system. However, Novell is not alone. Many companies are suffering with even more complex infrastructure than Novell. The goal for CIO is to streamline and simplify this complexity.


Novell implemented the "Zero Day Start" infrastructure which resulted in dramatic changes across a variety of processes. The figure above shows the automated distribution of employee information between different directories and applications today. By using open standards, it simplified a very cumbersome process in the past and a more manageable infrastructure.

Wide adoption of important new standards are helping make one Net concepts such as Zero Day Start a reality. They include:
1. LDAP: the lightweight directory access protocol.
2. XML: for data Interchange between dissimilar applications and directories.
3. SSL: as a security standard,


The central pieces for Zero Day Start are using eDirectory and DirXML to automate the synchronization of information between the relative systems and provide access to services. eDirectory and DirXML connects the enterprise data systems, like PeopleSoft, to the corporate directory as shown above. This allows automatic synchronization and authorization between user information and disparate systems.

I am proud that I was a part of this implementation team. As typical to any project the initial hiccups was challenging.....but was very satisfying once the project went "live"....

Why do we integrate ?

To deliver better and faster customer service.....accurately....no hiccups in process handshakes...

How about having a business process with 99.999999 % right deliveries without any computers involved in the process at all.....??

And that too in Mumbai, possibly the most densely populated city in the world - 19 million...

The Mumbai Dabbawala (=Tiffin Box Carrier) is a unique service industry whose primary business is collecting the freshly cooked food in lunch boxes from the residences of the office workers (mostly in the suburbs), delivering it to their respective workplaces and returning back the empty boxes by using various modes of public transport. Watch this .... http://www.youtube.com/watch?v=sxW9sUnodM8&feature=related

According to Forbes Magazine..... Today the 5,000 Dabbawalas make about 200,000 lunch deliveries in the city and have become famous for their clockwork precision and efficiency. Reportedly their mistake rate is just 1 in 16 million deliveries, which caused the Forbes Global magazine to award its Six Sigma certification in 2001. According to Forbes the Dabbawalas work with 99.999999 percent accuracy.

Started in 1890, the monthly fee max is 11 dollar per month....Forbes magazine marks this to be one of the best business processes in the world....

They are so dedicated to their work that it is said....that Prince Charles had to adjust his schedule to have a meeting with them to talk to them....

No frills....

http://en.wikipedia.org/wiki/Dabbawala

You cannot think of Mumbai without them....I miss Mumbai.....

SAML in commercial use....

Hi,
I found this interesting link (given below)where Lockheed Martin (the people who make the F16) are hiring....SAML experts....hence I think SAML has taken the test of time and graduated to become a commercially viable solution.....not for academic institutions only....

http://www.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?job_did=J3F6BS6KZ1L1XH3MPGQ

Qualifications:
Background in security and networking, familiar with protocols, knowledge of requirement process, good communications skills.
Demonstrated successful experience in a customer-facing role
Demonstrated successful experience in DMZ design
Expertise in PKI, SAML, XACML, WS-Secur*.

Lockheed Martin Aeronautics Company
Join in designing, building and supporting the world's most sophisticated military aircraft. Your involvement may include: The multiservice F-35 Joint Strike Fighter (JSF) * The proven multirole fighter, the F-16 *

Jim Ownby touched every point discussed in this class

The semester is quickly moving to its end, and only 2 presentations are left now. I was thinking to INTEGRATE our discussion topics and prepare a summary of the learnings of this class. But then we got this auspicious opportunity to hear our guest lecturer Mr. Jim Ownby. I observed an interesting thing in our guest lecturer's presentation, and it is that he almost touched upon every topic/aspect which we have discussed in class till date. I thought to revise you how?

1. Jim talked about the Integrated Lines of Business of BCD Travel which are "Traditional Travel Management", " Online Travel Management", "Traveler Security", "Crisis and Data management", "Incentives" and "Consulting Services". System Integration Team(Prachi, Andrew, Ben) talked about Integration Models and Styles of Integration (Data, Presentation & functional). We can relate it here that BCD had to integrate its business lines with all or some types of integration. CIS 8020 Achievers group (Asha, Jimmy and Rahul) had a presentation on ERP Systems on the same day, talking about how ERP systems are implemented to integrate these types of operating tenets and gave examples of Microsoft Dynamics and SAP. We can think that BCD Travel might also have implemented some similar kind of ERP system to integrate all the above stated business lines.

2. Then, Jim presented us with a slide where he showed us that BCD have travel partners like Sabre, Amadeus, Worldspan, Tripit etc. It is obvious that all these partners and BCD has to communicate (may be via sending messages). It reminds us of the third presentation by Mercury Group (Bill, Juhi, Gautam) where they discussed aboutMessaging Patterns and presentation by MegaHotPot (Mike, Vivian, Bing) onDatabase Oriented Middleware. If we assume that there might be message communication between BCD &its Travel Partners, certainly BCD Travel would have came across problem of integrating heterogeneous data. Its most probable that they might have thought of using Database Middle ware.

3. Jim then elaborated about BCD's IT platform selection and the technology portfolio they posses. Jim declared that all their development work is on Microsoft .NET development platform. Then they deploy SOA / Virtualized Services for solving System Integration problems. Mercury Group discussed about Service Oriented Architecture and presented some case studies. If you remember, they took example of Car Renting companies, and the same analogy applies here, where the challenge is to integrate systems of different organization. Here the scale is large and hence using SOA can safely be said "Appropriate" in this particular business situation.

BCD uses ETL (Extract, Transform, Load) tool for its data center management. Recall that Mike in his presenation told us about ETL tools (I remember he said some open source tools/ hand coded scripts could be executed to solve the purpose), inMegaHotSpot presentation on "Data Warehousing".

4. Our guest speaker discussed about the technical challenges which his team faces regularly. These challenges happens to be the challenges which are either discussed in every Tuesday class or are implications of System Integration.

•Reduced Maintenance Costs (TCO)

•Greater System Flexibility

•Reduced Time-to-Market

•Better interoperability

•Improved Client/Vendor accessibility/extensibility

•Improved Governance

5. On Gautam's question about "The technologies used by BCD's competitors", Jim expressed confidence that the top Travel Management Giants must be leveraging benefits of Web Services, which was the topic of Team Analyst (Ken, Veronica, David) in which they cleanly told us about how to create and publish Web Services.

6. On Sumantra's question about integrating a new partner into BCD's network, Jim threw some light on Process Integration which was our topic, "The Team CIS INTEGRATEM" where we presented our research on Process Modelling and Notations, and Team Analyst extending the discussion to BPEL (Business Process Execution Language). Jim told us that its their responsibility to align the interests and come up with integration solution in the event of adding a new company tgo their business partneship network.

7. On question from Vivek Menon about the role of "Cloud Computing", which happen to be Topic of Nucleus Group (Vivek, Sangeetha, Tarun) where they presented concepts, types and pros & cons of Cloud. Jim exposed the inherent problems in this emerging technology. He complained that using Cloud Computing is like sticking yourself to a proprietary technology, because you have to develop your application around the service provider's proprietary platform. Use there language specifics / data formats to insert data into the cloud. Once you enter your data into the cloud, and if you are not satisfied and want to migrate, you do not know how to pull your whole data out in a viable format. He audaciously named it "Cloud of uncertainty" and obviously raised question from the corporate side. I feel it was enlightening, and gave me a new vision of seeing this technology.

8. In the question and answer session, Jim briefly touched upon creating RESTful services and Mash ups. My team discussed about REST architecture and its notations and its relevance with Web and Internet. Mash up was talk topic of Silk Group (Jason, Max, Dmitriy), where they presented the fundamentals of mash-ups. They also discussed about technology behind mash-ups, and presented a great demo on yahoo pipes.

So, this is how Jim Ownby, Sr. Architect of BCD Travel "integrated" all the topics of CIS 8020 and made my job easy. He really gave a practical and industrial view of seeing these technologies. Prof. Zheng has done a commendable job by inviting such a knowledgeable person for talk. I appreciate it Professor. Now, I think this Blog has become very long, so I should stop.

Thank you. Your comments are highly solicited.

Articles on Systems Integration....a host of them....50 to be precise - I counted them......

Dr Zheng,
I think you had a post where you were looking out for a comprehensive book on Systems Integration....I think the challenge is that by the time a book is published we have 3 more technologies to be integrated.....and the book is outdated....

However, I found this link which has a summary of good articles on Systems Integration Course which looks useful....

http://www.enterpriseintegrationpatterns.com/bib.html

We covered most of the topics ...but there are some new ones too......:

1. Alexander
C. Alexander, S. Ishikawa, M Silverstein, A Pattern Language - Towns Buildings Construction, Oxford University Press, 1977, ISBN: 0195019199

2. Alpert
S. Alpert, K. Brown, B. Woolf, The Design Patterns Smalltalk Companion, Addison-Wesley, 1998, ISBN: 0201184621

3. Box
Don Box, Essential .NET, Volume 1: the Common Language Runtime, Addison-Wesley, 2002, ISBN: 0201734117

4. BPEL4WS
Business Process Execution Language for Web Services, Version 1.0, http://www.ibm.com/developerworks/webservices/library/ws-bpel

5. CSP
C. A. R. Hoare, Communicating Sequential Processes, Communications of the ACM , 1978, http://doi.acm.org/10.1145/359576.359585

6. CoreJ2EE
Alur, Crupi, Malks, Core J2EE Patterns: Best Practices and Design Strategies (2nd Edition), Prentice Hall PTR, 2003, ISBN: 0131422464

7. Dickman
Alan Dickman, Designing Applications with MSMQ, Addison-Wesley, 1998, ISBN: 0201325810

8. Douglass
Bruce Powel Douglass, Real-Time Design Patterns, Addison-Wesley, 2003, ISBN: 0201699567

9. EAA
Martin Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley, 2003, ISBN: 0321127420

10. EJB20
Enterprise JavaBeans Specification, Version 2.0, http://java.sun.com/products/ejb/docs.html

11. Garlan
Mary Shaw, Garlan David, Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall, 1996, ISBN: 0131829572

12. GoF
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995, ISBN: 0201633612

13. Graham02
Steve Graham, Simon Simeonov, Toufic Boubez, Glen Daniels, Doug Davis, Yuichi Nakamura, Ryo Nyeama, Building Web Services with Java: Making Sense of XML, SOAP and UDDI, SAMS Publishing, 2002, ISBN: 0672321815

14. Hohmann
Luke Hohmann, Beyond Software Architecture: Creating and Sustaining Winning Solutions, Addison-Wesley, 2003, ISBN: 0201775948

15. Hapner
Mark Hapner, Rich Burridge, Rahul Sharma, Joseph Fialli, Kim Haase, Java Messaging Service API Tutorial and Reference, Addison-Wesley, 2002, ISBN: 0201784726

16. JMS
Java Message Service (JMS), Sun Microsystems, http://java.sun.com/products/jms/

17. JMS11
Java Message Service (the Sun Java Message Service (JMS) 1.1 Specification), Sun Microsystems, http://java.sun.com/products/jms/docs.html

18. JTA
Transactions and Java Technology, http://java.sun.com/j2ee/transactions.html

19. Kahn
G. Kahn, The Semantics of a Simple Language for Parallel Programming, Information Processing 74: Proc. IFIP Congress 74, North-Holland Publishing Co., 1974,

20. Kaye
Doug Kaye, Loosely Coupled: The Missing Pieces of Web Services, RDS Press, 2003, ISBN: 1881378241

21. Kent
William Kent, Data and Reality, 1stBooks, 2000, ISBN: 1585009709

22. Lewis
Rhys Lewis, Advanced Messaging Applications with MSMQ and MQSeries, Que, 2000, ISBN: 078972023X

23. Leyman
Frank Leyman, et al., Production Workflow: Concepts and Techniques, Prentice-Hall PTR, 1999, ISBN: 0130217530

24. MDMSG
Multiple-Destination Messaging, http://msdn.microsoft.com/library/

25. Monson-Haefel
Richard Monson-Haefel and David A. Chappell, Java Message Service, O’Reilly, 2001, ISBN: 0596000685

26. MicroWorkflow
Dragos Manolescu, Micro-Workflow: A Workflow Architecture Supporting Compositional Object-Oriented Software Development, http://micro-workflow.com/PhDThesis/phdthesis.pdf

27. Monroe
Robert T. Monroe, Drew Kompanek, Ralph Melton, David Garlan, Stylized Architecture, Design Patterns, and Objects, 1996, http://www-2.cs.cmu.edu/afs/cs/project/compose/ftp/pdf/ObjPatternsArch-ieee97.pdf

28. MQSeries
MQSeries from IBM, http://www.ibm.com/software/mqseries

29. MSMQ01
Microsoft Message Queuing (MSMQ), http://www.microsoft.com/msmq

30. POSA
Buschmann et al, Pattern-Oriented Software Architecture, Wiley, 1996, ISBN: 0471958697

31. POSA2
Schmidt et al, Pattern-Oriented Software Architecture Vol.2, Wiley, 2000, ISBN: 0471606952

32. PatternForms
Pattern Forms, Wiki-Wiki-Web, http://c2.com/cgi-bin/wiki?PatternForms

33. PLOPD1
James Coplien, Douglas Schmidt (Editor), Pattern Languages of Program Design, Addision-Wesley, 1995, ISBN: 0201607344

34. Sharp
Alec Sharp, Patrick McDermott , Workflow Modeling: Tools for Process Improvement and Application Development, Artech House, 2001, ISBN: 1580530214

35. SOAP 1.1
W3C Simple Object Access Protocol (SOAP) 1.1 Specification, http://www.w3.org/TR/SOAP/

36. SOAP 1.2 Part 2
SOAP Version 1.2 Part 2: Adjuncts, http://www.w3.org/TR/soap12-part2/

37. Stevens
W. Richard Stevens, TCP/IP Illustrated, Volume 1: The Protocols, Addison-Wesley, 1994, ISBN: 0201633469

38. SysMsg
System.Messaging Namespace in the .NET Framework SDK, Microsoft, http://msdn.microsoft.com/library/

39. Tennison
Jeni Tennison, XSLT and XPath On The Edge, John Wiley & Sons, 2001, ISBN: 0764547763

40. UML
UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition, Addison-Wesley, 2003, ISBN: 0321193687

41. UMLEAI
UML Profile for Enterprise Application Integration, Object Management Group , 2002, http://cgi.omg.org/cgi-bin/doc?ptc/02-02-02

42. Wright
Gary R. Wright, W. Richard Stevens, TCP/IP Illustrated, Volume 2: The Implementation, Addison-Wesley, 1995, ISBN: 020163354X

43. WSAUS
Web Services Architecture Usage Scenarios, W3C, http://www.w3.org/TR/ws-arch-scenarios/

44. WSDL 1.1
Web Services Description Language (WSDL) 1.1, http://www.w3.org/TR/wsdl

45. WSFL
Web Services Flow Language, IBM, http://www-3.ibm.com/software/solutions/webservices/pdf/WSFL.pdf

46. WSMQ
WebSphere MQ Using Java, IBM, http://publibfp.boulder.ibm.com/epubs/pdf/csqzaw11.pdf

47. XML 1.0
Extensible Markup Language (XML) 1.0 (Second Edition), http://www.w3.org/TR/REC-xml

48. XSLT 1.0
XSL Transformations (XSLT) Version 1.0 -- W3C Recommendation, http://www.w3.org/TR/xslt

49. Waldo
Waldo, J., Wyant, G., Wollrath, A., and Kendall, S., A Note on Distributed Computing, Technical Report SMLI TR-94-29, Sun Microsystems Laboratories, November 1994, http://citeseer.nj.nec.com/waldo94note.html

50. Zahavi
Ron Zahavi, Enterprise Application Integration with CORBA , John Wiley & Sons, 1999, ISBN: 0471327204

CIS 8020 Assignment 2 [PS] [Google Health]

Assume a company provides health care services/health insurance to its employees as incentives(perks) in-house, i.e the company has its own team of HealthCare Professionals and covers health care of its employees. Company must consider using the Google Health API to keep Electronic Medical Record (EMR) of employees.

Company may want to conduct regular health check-ups of employees and would like keep records of the inspection & diagnosis results to analyze their physical and mental health. If company is multi-national, it would like to have all these records in one common format, which is possible with Google Health.

Google Health is a web service so you are able to use any language that can perform the four HTTP methods (GET/POST/PUT/DELTE). Google Health leverages the Google Data APIs, which have client libraries in Java, .NET, PHP, Python, Objective-C, and JavaScript. At this time, only the Java and .NET libraries support Google Health. In Google Health, you can add medical information to a user's profile by posting notices containing CCR data. The API supports a subset of the CCR ("Continuity of Care Record"), a standard format for transferring snapshots of a patient's medical history. Notices are messages that can contain certain XHTML elements, CCR data, or both. Notices might be sent to remind users to pick up a prescription, or they might contain lab results. The Google Health Data API uses the same underlying protocol as the other Google Data APIs. Google Data is the preferred way for applications to interface programmatically with the Google Health platform. Google Data eases application integration by encapsulating and hiding the AtomPub specification and implementation. In the application, doctors with right permissions, read user's profile or query for medical health records that match particular criteria. Company may use the results to provide personalized functionality based on the data. Here is an example of how to code this application. The example shows how to code the application in .NET, how to design Health Profiles (signed & unsigned) and how to build it.



Google Health API provides flexibility to use number of programming languages (such as Java, .NET etc). The biggest advantage is that Google Health can be integrated seamlessly into an existing application. In this case, company could leverage the possibility of integrating the Google Health application into its Finance Module of ERP implementation to keep record of the expenses on this venture.

Google Health API would be an appropriate and effective solution in this case.





Process Integration Presentation: October 27th Abstract & Articles

Abstract:
  • A business process is "a collection of related, structured activities that produce a service or product that meet the needs of a client.”
  • BPEL stands for Business Process Execution Language, and comes from a standards consortium consisting of BEA Systems, IBM, and Microsoft, BPEL combine.
  • Business processes are the lifeblood of any organization. It is the visibility, efficiency and effectiveness of these processes that enable organizations to reach and exceed their goals and differentiate them within a fiercely competitive market.
  • Through the process layer, business users can define, manage and measure their processes - this fundamental capability empowers business people to take direct ownership of their processes without having to defer to IT to implement each and every change.
  • What were point solutions can now be made available as services throughout the business, as organizations move to architectures that are more service-oriented.
Readings:

CIS 8020 Assignment 2 SS Google Visualization

A consulting company is using census data provided by an epidemiologist to analyze the population trend of Atlanta Metropolitan area for the last 9 years and decide if it makes business sense for extension of Health Care infrastructure.

The same data is best understood if represented in a graphic form which has been demonstrated in my website using Column Chart from Google Visualization API. Refer to the visualization shown below.



Population Trend - Atlanta Metropolitan Area : 2000-2008


In this case, the source data for the presentation has been hosted and published in Google Docs (extracted from original census data).

We have also used tooltip to zoom on a particular column to get the actual value for a County.

Additionally, we can use the same API for representing similar data in various graphic forms for example Pie Chart, Line Chart, Tables, Motion Chart, Area Chart, Bar Chart etc.

A similar model can be used for visualization of data from Sales, Revenue, and Inventory etc.

Since any Excel file can be used as source data, the visual representation is automatically updated without any change in code just by republishing the changed data and hence can be used for tracking any dynamic data.

The API is easy to use and is highly parameterized. Hence the type of chart, size, font, color etc. can be modified quickly as required.

CIS 8020 Assignment 2 JM Google Maps

A small Atlanta company wants to have a map on its website that tracks all of their Atlanta office locations.  Besides just presenting this as just an image, they want to have the ability for users to interact with the map and be able to tell what the primary function of the office is.

Google Maps API is a good choice for the solution to this problem. It generates dynamic maps which can be easily integrated to any web page and allows end users to interact with. All the company needs to do is configure a few coordinate settings in the Google Maps API to make it work. The following is a prototype:



Compared to creating it from scratch, Google's Maps API is easy to use and setup. Creating a customized map interface only requires adding the Google JavaScript code to a page, and then using JavaScript functions to add points to the map.  It saves time in development and maintenance. It also saves on network bandwidth and processing power since the application is hosted by Google.

REST Presentation: October 6th Abstract & Articles

Abstract:

REST emphasizes scalability of component interactions, generality of interfaces, independent deployment of components, and intermediary components to reduce interaction latency, enforce security, and encapsulate legacy systems.

REST provides a set of architectural constraints that, when applied as a whole, emphasizes scalability of component interactions, generality of interfaces, independent deployment of components, and intermediary components to reduce interaction latency, enforce security, and encapsulate legacy systems.

Readings:

Fielding, Roy Thomas. Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation, University of California, Irvine, 2000. - http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
Principled Design of the Modern Web Architecture by ROY T. FIELDING and RICHARD N. TAYLOR, ACM Transactions on Internet Technology, Vol. 2, No. 2, May 2002, Pages 115–150.

http://www.infoq.com/articles/rest-introduction
http://www.infoq.com/articles/designing-restful-http-apps-roth
http://www.youtube.com/watch?v=YCcAE2SCQ6k
http://www.ietf.org/rfc/rfc3986.txt
http://soa.dzone.com/news/rest-%E2%80%93-good-bad-and-ugly
http://rest.blueoxen.net/cgi-bin/wiki.pl?WhatIsREST#nid652
http://www.prescod.net/rest/
http://www.prescod.net/rest/rest_vs_soap_overview/
http://www.petefreitag.com/item/431.cfm
http://en.wikipedia.org/wiki/Representational_State_Transfer
http://www.xfront.com/REST-Web-Services.html
http://dret.net/netdret/docs/soa-rest-www2009/
http://rest.elkstein.org/2008/02/what-is-rest.html

When to and When not to use REST

Architects and developers need to decide when this particular style is an appropriate choice for their applications.

A RESTFul design may be appropriate when:
  • The web services are completely stateless. A good test is to consider whether the interaction can survive a restart of the server.
  • A caching infrastructure can be leveraged for performance. If the data that the web service returns is not dynamically generated and can be cached, then the caching infrastructure that web servers and other intermediaries inherently provide can be leveraged to improve performance. However, the developer must take care because such caches are limited to the HTTP GET method for most servers.
  • The service producer and service consumer have a mutual understanding of the context and content being passed along. Because there is no formal way to describe the web services interface, both parties must agree out of band on the schemas that describe the data being exchanged and on ways to process it meaningfully. In the real world, most commercial applications that expose services as RESTful implementations also distribute so-called value-added toolkits that describe the interfaces to developers in popular programming languages.
  • Bandwidth is particularly important and needs to be limited. REST is particularly useful for limited-profile devices such as PDAs and mobile phones, for which the overhead of headers and additional layers of SOAP elements on the XML payload must be restricted.
  • Web service delivery or aggregation into existing web sites can be enabled easily with a RESTful style. Developers can use technologies such as Asynchronous JavaScript with XML (AJAX) and toolkits such as Direct Web Remoting (DWR) to consume the services in their web applications. Rather than starting from scratch, services can be exposed with XML and consumed by HTML pages without significantly refactoring the existing web site architecture. Existing developers will be more productive because they are adding to something they are already familiar with, rather than having to start from scratch with new technology.

A SOAP-based design may be appropriate when
:

  • A formal contract must be established to describe the interface that the web service offers. The Web Services Description Language (WSDL) describes the details such as messages, operations, bindings, and location of the web service.
  • The architecture must address complex nonfunctional requirements. Many web services specifications address such requirements and establish a common vocabulary for them. Examples include Transactions, Security, Addressing, Trust, Coordination, and so on. Most real-world applications go beyond simple CRUD operations and require contextual information and conversational state to be maintained. With the RESTful approach, developers must build this plumbing into the application layer themselves.
  • The architecture needs to handle asynchronous processing and invocation. In such cases, the infrastructure provided by standards such as WSRM and APIs such as JAX-WS with their client-side asynchronous invocation support can be leveraged out of the box.

    Larry Ellison on Cloud Computing


    Source: http://www.youtube.com/watch?v=KmXJSeMaoTY

    Interesting video of Oracle's CEO Larry Ellison explaining that "Cloud Computing" is just another meaningless term that does nothing to advance the discussion of networked services.  Does anybody else tend to agree with him?

    Intro to REST Video


    Source: http://www.youtube.com/watch?v=YCcAE2SCQ6k

    Very nice overview of REST (Representational State Transfer) from Google.

    High Level Overview of Service-Oriented Architecture (SOA)

    Service Oriented Architecture or SOA is a systems integration architecture for the development of loosely coupled and distributed applications in an enterprise. SOA encompasses many services found on the network. These services communicate with each other and the communications involves data exchange and even service coordination. Generally SOA can be classified into two terms Services and Connections.

    Services:
    A service is a function or some processing logic or business processing that is well-defined, self-contained, and does not depend on the context or state of other services. An example of a service is Loan Processing or online booking of a flight. Another example may be a Weather Service, which can be used to get weather information. Any application (Service Consumer) on the network can use the Weather Service (Service Provider) to get weather information it needs.

    Connections:
    Connections are the link of connecting self-contained distributed services with each other, it enables the Service Consumer and Service Provider to communicate with each other. For Web services, SOAP over HTTP is typically used to communicate between services.

    The following figure is a simple example of the service-oriented architecture. It shows how a service consumer sends a service request to a service provider. After accepting the request, the service provider sends a message back to the service consumer providing it with the information it needs.


    SOA is different from other integration architectures, because it consists mostly of loosely coupled, highly interoperable application services. Services can be developed in different development languages (such as Java, .NET, C++, PERL, PHP) and the software components become reusable. For example the same C# service may be used by a Java application. A WSDL defines a standard, which allows different SOA components/technologies to talk to each other.

    Sources:
    http://en.wikipedia.org/wiki/Service-oriented_architecture
    http://www.roseindia.net/webservices/

    Integration of a another kind.....Lifecasting.....

    Nokia, Facebook Link GPS, Social Networking

    http://www.businessweek.com/globalbiz/blog/europeinsight/archives/2009/09/nokia_facebook.html

    Posted by: Jack Ewing on September 02

    For more than a year Nokia execs have been forecasting that the GPS capability of high-end mobile phones would mesh with social networks. Now the Finnish handset maker is trying to get out in front of the trend, announcing an agreement with Facebook that will let users broadcast their locations to friends. The new service, which Nokia is calling lifecasting, means you can let your Facebook friends know when you’re in the neighborhood. Instead of just connecting online, you could actually meet in the flesh.Lifecasting will come with the N97 mini when the $630 device begins shipping in October. It will also be available as a free download for owners of the N97, Nokia’s current top-of-the-line smartphone. The announcement, made Sept. 2 at the Nokia World event in Stuttgart, is part of a broader product and software offensive designed to reassert the company’s dominance in high-end devices.

    Lifecasting could help push online interaction back into the physical world—a potentially powerful development, especially if the service resonates with customers and application developers, and they find creative ways to use it.
    But history has also shown that such new developments often take years to catch on because they require a big change in user behavior. Nokia, which beat Apple to the market by years with devices that could surf the Internet, was not as successful as its rival in getting customers to actually use the capability. And the company is weak in the U.S. where Internet-based services often catch on first.
    Lifecasting is a great idea, but Nokia will have to show it has learned how to make such inventions not only possible but appealing and usable.

    What is Service Oriented Architure?


    Source: http://www.youtube.com/watch?v=zV860odGN5Y

    What is the hype on SOA ?

    As corporations go global and fast forward acquisitions the IT team starts facing more and more challenges in integrating various bespoke and acquired applications. It has been a nightmare for the IT team when there is a deadline given by business to integrate applications which have never been designed with open interfaces.

    Hence, to reduce the painstaking effort of re-inventing the wheel everytime, software programmers started thinking, exploring and delivered smarter programs - in a way that pieces of their code could be used "off the shelf" which can be reused and better maintained and supported in the future.

    "SOA (Service Oriented Architecture) is a new approach to building IT systems that allow businesses to leverage existing assets and easily enable the inevitable changes required to support the business"(Ref 1)

    The basic building blocks of SOA architecture is to build applications around reusable components and define guiding principles of reusing them.

    The challenges of integration that an IT team face has been in existence from times immemorial. In the good old days, the only way of integrating 2 different systems was to use a API (Application Programming Interface) call from one application to the other to fetch data which was embedded in the application. The coding was pretty tiring and cumbersome and had to be modified for each and every program requesting for a subset of the same data. With the new SOA way of systems development, things became much easier - instead of programs embedding calls to each other in their source code the new way of development use "defined protocols" ( will be explained later) that describe how programs pass and parse data.

    Some feel that SOA is just a revival of modular programming (1970s), event-oriented design (1980s) or interface/component-based design (1990s) . In some respects, one can regard SOA as an architectural evolution rather than as a revolution. (Ref 2) . It's a ongoing advancement of taking the best from the past and overcoming the drawbacks that classical programming had.

    So, what are the benefits that SOA bring. According to a published article in ComputerWorld ( Ref 3), here are a few of them :
    1. Application integration savings: Having a service-oriented interface to each application can save 30% to 40% on each integration point. Rather than point-to-point integration, SOA has a hub-and-spoke configuration, reducing integration points substantially.
    2. Reuse of applications: An application to retrieve and report on employee data from a human resources database can be used as a service by identity management systems, employee portals and other applications, rather than redeveloping the code or embedding it in each of these applications. The direct benefits are immediate avoidance of development-and-test labor costs. And as an organization moves more applications to SOA, reuse benefits grow. Short-term savings are typically 5% to 10%, growing to 40% or more for an enterprise wide deployment.
    3. Reduced project risks: Since the "reusable components" have been already tested and deployed it reduces the risks of deployment of the same code in future projects.
    4. Improved application quality: Reducing application integration complexity and allowing reuse also improves application quality.
    We will try explaining the technical aspects of SOA, the business perspective and the challenges faced on Implementation of SOA in the next few sessions.



    Ref 1 : Service Oriented Architecture for Dummies, 2007, ISBN - 13: 978-0-470-05435-2
    Ref 2 : http://en.wikipedia.org/wiki/Service-oriented_architecture
    Ref 3 : http://www.computerworld.com/s/article/9001155/Is_There_Real_Business_Value_Behind_the_Hype_of_SOA_?taxonomyId=74&pageNumber=1