Posted by: blukee on: June 29, 2010
“Each Pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over,without ever doing the same thing twice.” - Christopher Alexander
A pattern has four essential elements:
Design patterns are descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context.
I’m going to learn the following pattern in this year.
From July 2010 to Dec 2010.
Interface Patterns:
Responsibility Patterns:
Operation Patterns:
Extension Patterns
Here’s a template to describe a design pattern:
Reference Books:
“Design Pattern In Java” as a reference book.
Steven John Metsker (Author), William C. Wake (Author)

“C# 3.0 Design Pattern
Judith Bishop (Author)

Posted by: blukee on: June 28, 2010
(Fielding and Taylor 2002)
Why am I reading this?
Get to know REST. Can it be applied to my dissertation as the architecture?
What are the authors trying to do in writing this? (Abstract, Introduction, Conclusion)
The authors focus on the rationale behind the modern Web’s architectural design and the software engineering principles upon which it is based.
.
What is the motivation for this work (both the development and the technical problem)?
“what was needed was a way for people to store and structure their own information, whether permanent or ephemeral in nature, such that it could be usable by themselves and others, and to be able to reference and structure the information stored by others so that it would not be necessary for everyone to keep and maintain local copies.”
The challenge was to build a system what would provide a universally consistent interface to this structured information, available on as many platforms as possible and incrementally deployable as new people and organizations joined the project.
What is the proposed solution (hypothesis, idea, design)?
REST focus upon the generic connector interface of resources and representations.
Representational State Transfer: it’s a coordinated set of architectural constraints that attempts to minimize latency and network communication while at the same time maximizing the independency and scalability of component implementations.
Web pages -> Virtual State machines
Selecting a link or submitting a form -> State Transition -> transfer a representation of that state to the user.
Requirement of Modern WWW: the challenge was to build a system that would provide universally consistent interface to this structured information, available on as many platforms as possible and incrementally deployable as new people and organization joined the project
History:
Client-Server: separating the UI concerns from the data storage concerns. Improve the portability of UI across multiple platforms and improve scalability by simplifying these components.
Client-Stateless-Server: Each request from client to server must contain all the information necessary to understand the request, and cannot take advantage of any stored context on the server. Session state is kept on the client. This induces the:
Stateless constraint trade-off:
Client-cache-stateless-server: enable cache of client or server to improve network efficiency.
REST emphasis on a uniform interface between components
REST interface is designed to be efficient for large grain hypermedia data transfer, optimizing for the common case of the web.
Layered system style: each component cannot see beyond immediate layer. Layers can be used to encapsulate legacy services and to protect new services from legacy clients, simplifying components by moving infrequently used functionalities to a shared intermediary. Intermediaries can also be used to improve system scalability by enabling load balancing of services across multiple networks and processors.
Disadvantage of layered systems: add overhead and latency to the processing of data, reducing user perceived performance.
Code-on-demand (COD) style is optional: client downloads and executes code (applets or scripts)
In order t obtain a uniform interface across multiple architectures. There are 4 constraints to behaviors of components:
Resource – Mr(t) is a function of time mapping to a set of entities/values.
Value- resource representations or resource identifiers. So the reference of resource refers to a concept/ semantics of a resource rather than some representations.
REST components perform actions on a resource by using a representation to capture or intended state of that resource and transferring that representation between components.
A representation consists of: data, metadata of data.
A response message may include both representation metadata and resource metadata.
Control data defines the purpose of a message. A give representation may indicate the following by control data.
In parameters of a request:
- Control data
- Resource identifier
- An optional representation
Out parameters of a response:
- Control data
- Optional resource metadata
- Optional representation
Reference:
Fielding, R. and R. Taylor (2002). “Principled design of the modern Web architecture.” ACM Transactions on Internet Technology (TOIT) 2(2): 115-150.
Posted by: blukee on: June 8, 2010
Ji Hyun, K., L. E. E. Won Il, et al. (2006). Services-oriented computing in a ubiquitous computing platform. Berlin, ALLEMAGNE, Springer. 4294: XIX-653 p.
Why am I reading this?
What are the authors trying to do in writing this? (Abstract, Introduction, Conclusion)
To present the TOPAZ — a services-oriented, business oriented ubiquitous computing platform called TOPAZ which resides between the end users and application providers. It is aiming to build a marketplace of telematics services, which provides an platform with a set of services. These services are subscription based, session enabled which provide asynchronous communication paradigms to application providers who use TOPAZ as the a platform to provide accessibility to the lower infrastructure, as well as end user community who can subscribe application services provided by these application providers.
As a business oriented platform, it also provides services such as service metering, service monitoring, service diagnostics etc ( some services from another paper “The XVC Framework for In-Vehicle User Interfaces”).
What is the motivation for this work (both the development and the technical problem)?
Service-oriented computing offers means to better expose the value of such infrastructures. They want to build a marketplace in which applications providers are able to easily compete for the business of users and user communities.
What is the proposed solution (hypothesis, idea, design)?
The nature of the TOPAZ services, as enabling long-running sessions between applications and remote clients, presents peculiar challenges to the generic issues of service metering and resource management.
TOPAZ is a platform of core services for ubiquitous-computing applications and makes them available in a uniform way to all application providers, through public applications-programming interfaces.
TOPAZ provides a multi-layered session based communication model, which also are used to facilitate resource reclamation.
Why Application services?
Why session?
How reclamation?
How QoS works?
How to Meter the service?
What evaluation of the solution is presented? Did this evaluation convince you of the merit of the proposed solution?
What are the paper’s contribution (both the author’s opinion and your own)?
What are the future directions for this research (both the author’s opinion and your own)?
What questions do you have? What don’t you understand?
In conclusion what can I make of this? Am I negatively or positively minded? Do I agree/disagree? Does the text contribute to answering the review question?
Questions:
Posted by: blukee on: March 24, 2010
According to different levels of services in the Cloud, and inspired by the taxonomy of “Everything As A Service” (XaaS), Cloud services can be categories as Infrastructure As A Service (IaaS), Platform As A Service (PaaS), and Software As A Service (SaaS).
1) Infrastructure as a Service provisions hardware and equipments which can be accessed through a standard API to deliver software application environment with a on-demand resource usage-based pricing model. Infrastructure, including computational power, storage, network and sometimes legacy system can be required on-demand or scaled up and down as the need of applications , and be charged on usage. These features of IaaS are enabled by hardware virtualization, resource monitoring, and usage metering.
2) Platform as a Service offers developer with a high-level integrated environment to build, test, and deploy custom applications. Services in PaaS can be categorized into Programming Environment and Execution Environments . An Execution Environment PaaS typically encompasses a Programming Environment. Most commercialized implementations of PaaS are design for hosting Web applications, such as Google’s App Engine, and Microsoft Azure. Developers of these PaaS accept some restrictions on the type of software, use hundreds of readily available tools and services, and build quickly scalable applications. To the concept of Ubiquitous Cloud, users can use data from remote sensors and control remote devices like a virtually local devices through a standard Web service interfaces or even deploy user’s application onto the PaaS.
3) Software as a Service is a software-delivery mode . The software vendor delivers software as utility services and charges on a per-use basis. And users subscribe to such a service and execute it on-demand through some form of client-side architecture via the Internet or Intranet. One of the most famous SaaS stockholder is Slaesforce.com who delivery Customer Relationship management (CRM) Services.
SaaS enables effective and efficient delivery of software systems as services. SOA and Web services can transform existing software systems into Web services, which can be access by programs and integrated into other business process. Traditional service providers , such as Google, Amazon.com, and PayPal have been working delivering Web services, which enable software users can access their service without going through Web pages via standard Web service interfaces.
In ubiquitous computing domain, especially for global smart spaces, raw data, integrated data, control power of remote devices, and value-added services can all be delivered as services of various granularities. In iTransIT framework, highlighted software resources are information ranging from places of interest, to prevailing road and weather conditions, to expected journey times, to up-to-date public transport information, to enable privileged users to interact with the infrastructure. All this software can be transformed to Web services and delivered as SaaS.
Reference:
I. Foster, Y. Z., I. Raicu, and S. Lu Cloud Computing and Grid Computing 360-Degree Compared. IEEE Grid Computing Environments (GCE08)2008), pp. 1-10.
Lenk, A., Klems, M., Nimis, J., Tai, S. and Sandholm, T. What’s inside the Cloud? An architectural map of the Cloud landscape. Software Engineering Challenges of Cloud Computing, 2009. CLOUD ’09. ICSE Workshop on, 23 – 31.
Yun, C. H., Han, H., Jung, H. S., Yeom, H. Y. and Lee, Y. W. Intelligent Management of Remote Facilities through a Ubiquitous Cloud Middleware. In Proceedings of the Proceedings of the 2009 IEEE International Conference on Cloud Computing (2009). IEEE Computer Society, [insert City of Publication],[insert 2009 of Publication].
Laplante, P., Zhang, J. and Voas, J. What’s in a Name? Distinguishing between SaaS and SOA. IT Professional2008), 46-50.
Zhang, L., Zhang, J. and Cai, H. Services computing. Springer-Verlag New York Inc, 2007.
Meier, R. A Framework for Incremental Construction of Real Global Smart Space Applications. Elsevier Pervasive and Mobile Computing jounal, Vol 5, doi:10.1016/j.pmcj 2009).
Posted by: blukee on: March 21, 2010
Author: Ian Foster et al
Date:2009
Publication Details: IEEE Grid Computing Environments (GCE08)
Why am I reading this?
Get a more clear vision of Cloud Computing. And mapping issues of cloud computing in iTransIT System.
What are the authors trying to do in writing this? (Abstract, Introduction, Conclusion)
This paper strives to compare and contrast Cloud Computing with Grid Computing from various angles and give insights into the essential characteristics of both.
What is the proposed solution (hypothesis, idea, design)?
Cloud Computing is not a completely new concept; it has intricate connection to the relatively new but thirteen-year established Grid Computing paradigm, and other relevant technologies such as utility computing, cluster computing, and distributed systems in general.
The author gave a definition for Cloud Computing and compared Grids and Clouds Side-by-Side.
Definition of Cloud Computing: A large-scale distributed computing paradigm that is driven by economies of scale, in which a pool of abstracted, virtualized, dynamically-scalable, managed computing power, storage, platforms, and services are delivered on demand to external customers over the Internet.
Cloud Computing is a specialized distributed computing paradigm; it differs from traditional ones in:
1) Massively scalable.– how to achieve this ?
2) Can be encapsulated as an abstract entity that delivers different levels of services to customers outside the Cloud. — How to get different levels of services?
3) it is driven by economies of scale.
4) the services can be dynamically configued (via virtualization or other approaches) and delivered on demand.
Grid:
Focus: an infrastructure that delivers storage and compute resources.
Relationship: Overlaps with all these fields where it is generally considered of lesser scale than supercomputers and Clouds. (Supercomputer and Cluster Computing is more focused on traditional non-service applications.)
Aim: to enable resource sharing and coordinated problem solving in dynamic, multi-institutional virtual organizations.
Goal: to enable federated resource sharing in dynamic, distributed environments.
The de facto standard implementation: The Globus Toolkit, is to build a uniform computing environment from diverse resources by defining standard network protocols and providing middleware to mediate access to a wide range of heterogeneous resources. Globus addresses various issues such as security, resource discovery, resource provisioning and management, job scheduling, monitoring, and data management.
Cloud:
Focus: economy based aiming to deliver more abstract resources and services.
Relationship: Web 2.0 covers almost the whole spectrum of service-oriented applications, where Cloud Computing lies at the large-scale side.

Comparing Grids and Clouds Side-by-Side
Business Model:
Cloud: a customer will pay the provider on a consumption basis. e.g. Amazon EC2 and Data cloud S3.
Grid: (at least found in academia or government labs) is project-oriented in which the user or community repressed by the proposal have certain number of service units the can spend.
Architecture:
Grids focused on integrating existing resouces with their hardware, operating systems, local resouce management, and security infrastructre.

Cloud are developed to address Internet-scale computing problems. Cloud are usually referred to as a large pool of computing and /or storage resources, which can be accessed via standard protocols via an abstract interface.
Cloud can be build on topof any existing protocols- Web servcies(WSDL, SOAP), and some advanced Web 2.0 technologies- REST, RSS, AJAX, etc.
It is possible for Clouds to be implemented over existing Grid technologies leveraging more than a decade of community.

Posted by: blukee on: March 18, 2010
Year: 2008
Journal: IT Professional
Publisher:IEEE Computer Society
My Notes:
The SaaS delivery model essentially separates software ownership from the user- the owner is a vendor who hosts the software and lets the user execute it on-demand through some form of client-side architecture via the Internet or an intranet. This model delivers software as utility services and charges on a per-use basis, similar to charging of electricity.
e.g. Salesforce.com is an example of SaaS
In a SOA model, the constituent components of the software system are reusable services. Software applications are close to business objects.SOA is also a consistent framework for plugging in appropriate software statically and dynamically.
The two models complement each other: SaaS helps to offer components for SOA to use, and SOA helps to quickly realize SaaS. Web services technologies are best-known enabler both for SaaS and SOA. (Web services description WSDL, publication and discovery UDDI, transportation SOAP)
SOA and SaaS must consider platform-dependent designs. For SOA-based software construction, the developer must choose a platform to carry the web services technology. BEA AquaLogic, IBM WebSphere, or Microsoft .NET.
Functioning SOA-based systems require monitoring and management of all communication, coordination, and collaboration among service components.
A functioning SaaS requires management of the communication, coordination, and collaboration among its internal components.
By keeping SOA in mind while creating a SaaS, developers can intentionally produce multiple services at various complexity levels can become available and thus facilitate more SOA-based construction.
Neither SaaS nor SOA requires Web services technology, but it’s by far the best current option for supporting them.
[1] Laplante, P., Zhang, J. and Voas, J. What’s in a Name? Distinguishing between SaaS and SOA. IT Professional2008), 46-50.
Posted by: blukee on: March 16, 2010
Summary:
This article describes a standardised way to build context-aware global smart space applications using information that is distributed across independent (legacy, sensor-enabled, and embedded) systems by exploiting the overlapping spatial and temporal attributes of the information maintained by these systems. The framework supports a spatial programming model based on a topographical approach to modelling space that enables systems to independently define and use potentially overlapping spatial context in a consistent manner and in contrast to topological approaches, in which geographical relationships between objects are described explicitly. This approach is supported by an extensible data model that implicitly captures the relationships between information provided by separate underlying systems and facilitates the incremental construction of global smart spaces since the underlying systems to be incorporated are largely decoupled. The framework has been evaluated using a prototype that integrates legacy systems and context-aware services for multi-modal urban journey planning and for visualising traffic congestion.
Notes:
Global smart environments will be heterogeneous as they likely will comprise a multitude of sensors , networks, and ultimately systems.
Potential applications:from pervasive access to personal and professional information, to city-wide information system[2,3], to context-aware traveller assistance[4,5], to optimised urban traffic control[6].
Relative examples:
[2] K. Cheverst, N. Davies, K. Mitchell, A. Friday, and C. Efstratiou, “Experiences of Developing and Deploying a Context-aware Tourist Guide: The GUIDE Project,” in Proceedings of the Sixth Annual International Conference on Mobile Computing and Networking (MobiCom 2000). Boston, Massachusetts, USA: ACM Press, 2000, pp. 20-31.
[3] G. D. Abowd, C. G. Atkeson, J. Hong, S. Long, R. Kooper, and M. Pinkerton, “Cyberguide: A Mobile Context-Aware Tour Guide,” ACM Wireless Networks, vol. 3, pp. 421-433, 1997.
[4] T. Sivaharan, G. Blair, A. Friday, M. Wu, H. Duran-Limon, P. Okanda, and C.-F. Sørensen, “Cooperating Sentient Vehicles for Next Generation Automobiles,” presented at The First ACM International Workshop on Applications of Mobile Embedded Systems (WAMES’04), Boston, Massachusetts, USA, 2004.
[5] J. Kjeldskov, S. Howard, J. Murphy, J. Carroll, F. Vetere, and C. Graham, “Designing TramMateña Context-Aware Mobile System Supporting Use of Public Transportation,” in Proceedings of the 2003 Conference on Designing for User Experiences. San Francisco, California, USA: ACM Press, 2003, pp. 1-4.
[6] J. Dowling, R. Cunningham, A. Harrington, E. Curran, and V. Cahill, “Emergent Consensus in Decentralised Systems using Collaborative Reinforcement Learning,” in Post-Proceedings of SELF-STAR: International Workshop on Self-* Properties in Complex Information Systems, LNCS 3460: Springer-Verlag, 2005, pp. 63-80.
Vision: heterogeneous sensor-rich systems have already been deployed in towns and cities and along national road networks. Users in such a global smart space can access information ranging from places of interest, to prevailing road and weather conditions, to expected journey times, to up-to-date public transport information.
And this system can provide different levels of services: privileged users to change a traffic light.
Basis for the provision of context-aware services will be the integration of the individual systems associated with global smart spaces into comprehensive platforms.
iTransIT framework- a standardised way to build context-aware global smart space applications.
iTransIT frame work supports a spatial programming model based on a topographical location model.This spatial programming model provides access to distributed context information based on overlapping temporal and spatial aspects.
iTransIT proposes an extensible layered data model to facilitate data exchange between systems and services with diverse data sets, quallity of service requirements, and functional organizations.
Individual systems maintain one or more layers of the overall data model.This distribution of layers are distributed to a series of systems effectively. And this enables applications to access elements of a certain part of the model with a specific quality of service.
It supports gradual integration with minimal impact on other system. These layers might be integrated at a different time and the integration of one layer does not affect the data captured in the other layer.
The proposed framework has been realised in the form of a proof-of concept prototype of a global smart space. The prototype models and captures a variety of real transportation information derived from systems currently deployed in Dublin City and serves as a platform for pervasive services using this transportation information.