Service Oriented Architecture for Web Application Development

4 downloads 345714 Views 636KB Size Report
features and needs for the development of Web Applications. Service-Oriented Architecture (SOA), an Architecture that describes an entity (e.g., application or ...
Proceedings of 5th National/ Pacific Regional Conference on Information and Communication Technology and Management 5th-6th March 2010, Mumbai.

Service Oriented Architecture for Web Application Development Dr. H. B. Kekre1, Pallavi Halarnkar2, Alpa Reshamwala3 1 Sr.Professor, 2, 3Assistant Professor Computer Engineering Department, MPSTME, SVKM’s NMIMS, Mumbai-400056 E mail: [email protected], [email protected] , [email protected] Abstract— World Wide Web applications are full-fledged, complex software systems. Therefore, the development of Web applications requires a methodologically sound engineering approach, called Web Engineering, should have an associated architecture that takes into account the special features and needs for the development of Web Applications. Service-Oriented Architecture (SOA), an Architecture that describes an entity (e.g., application or enterprise) as a set of interdependent services. SOA provides for reuse of existing services and the rapid deployment of new business capabilities based on existing assets. It is a representation of a system where the functionality is provided as a set of services called by other parts of the system. In this paper, we have presented SOA at the architecture level for a web application development. SOA facilitate the manageable growth of large scale enterprise systems, to enhance use of services, also facilitates Internet-scale provisioning by reducing the costs in organization. SOA provides a simple scalable paradigm for organizing large networks of systems that require interoperability. Web application developer using SOA principles is better equipped, evolvable and manageable. The infrastructure SOA is more agile and responsive than one built on an exponential number of pairwise interfaces. Hence, SOA provides a solid foundation for business agility and adaptability.

design, and automatic code generation) combine with semantic methods and tools (i.e., ontology engineering, semantic service annotation and discovery) to forge a new approach to software development for the Semantic Web. In [3] Ivar et. al has proposed and investigated the use of SOA in the construction of collaborative services. The paper gives a description of collaborative services and a generic model of a collaborative service is analyzed to identify the basic collaborative functions. II.

Web Engineering is the application of systematic, disciplined and quantifiable approaches to development, operation, and maintenance of Web-based applications. It is both a pro-active approach and a growing collection of theoretical and empirical research in Web application development. The main themes of Web Engineering encompass how to successfully manage the diversity and complexity of Web applications development and, hence, to avoid potential failures that may have serious implications. A. Requirement Engineering A requirement is defined as a condition or capability that must be met or fulfilled by a system to satisfy a contract, standard, specification, or other formally imposed documents (IEEE Standard 610.12-1990). The requirements defined for a system should be: correct, consistent, verifiable and traceable. Requirements engineering is the process of eliciting, understanding, specifying and validating customers’ and users’ requirements. [4]. Sawyer and Kotonya [5] describe a requirements engineering process that includes requirements elicitation, requirement Analysis and negotiation, requirements specification, requirements validation.

Keywords- Web engineering, Service Oriented architecture

I.

WEB ENGINEERING PROCESS

INTRODUCTION

Yogesh et.al.[1] gives an overview of Web Engineering by addressing the questions: why is it needed?, what is its domain of operation?, how does it help and what should it do to improve Web application development? and how should it be incorporated in education and training? It also discusses the significant differences that exist between Web applications and conventional software, the taxonomy of Web applications, the progress made so far and the research issues and experience of creating a specialization at the master’s level. The paper reaches a conclusion that Web Engineering at this stage is a moving target since Web technologies are constantly evolving, making new types of applications possible, which in turn may require innovations in how they are built, deployed and maintained. In [2], they show how classical Software Engineering methods (i.e., formal business process development, computer-aided and component-based software

B. Design Design for Web Applications encompasses technical and nontechnical activities. The look and feel of content is developed as part of graphic design; the aesthetic layout of the user interface is created as part of interface design, and the technical structure of the Web Application is modeled as part of architectural and navigational design. In every instance, a design model should be created before construction begins, but a good Web engineer recognizes that the design will evolve as more is learned about stakeholder requirements as the Web Application is built.

1

Proceedings of 5th National/ Pacific Regional Conference on Information and Communication Technology and Management 5th-6th March 2010, Mumbai.

C. Architecture An importing thing in a development process is to elaborate a stable and sound architecture for the system to be developed. The Rational Unified Process is an architecture centric development process. One of the evaluation criteria for the second of four major milestones is the establishment of an Architecture baseline [6]. There are different categories of web applications; one of them is Service oriented applications: These sites are offering a service to web users. A service oriented application contains the programming logic needed to implement the service. The layout of the data is often a secondary concern. During maintenance the developers need a good understanding of the control logic. Examples are webmail services or online word-processing systems.

entities (people and organizations) create capabilities to solve or support a solution for the problems they face in the course of their business. Visibility, interaction, and effect are key concepts for describing the SOA paradigm. Visibility refers to the capacity for those with needs and those with capabilities to be able to see each other. This is typically done by providing descriptions for such aspects as functions and technical requirements, related constraints and policies, and mechanisms for access or response. The descriptions need to be in a form (or can be transformed to a form) in which their syntax and semantics are widely accessible and understandable. Whereas visibility introduces the possibilities for matching needs to capabilities (and vice versa), interaction is the activity of using a capability. Typically mediated by the exchange of messages, an interaction proceeds through a series of information exchanges and invoked actions. There are many facets of interaction; but they are all grounded in a particular execution context – the set of technical and business elements that form a path between those with needs and those with capabilities. This permits service providers and consumers to interact and provides a decision point for any policies and contracts that may be in force. The purpose of using a capability is to realize one or more real world effects. At its core, an interaction is “an act” as opposed to “an object” and the result of an interaction is an effect (or a set/series of effects). This effect may be the return of information or the change in the state of entities (known or unknown) that are involved in the interaction.

D. Testing Testing plays a crucial role in the overall development Process, more often than not, testing and evaluation are neglected aspects of Web development. Many developers test the system only after it had met with failures or limitations have become apparent, resorting to what is known as retroactive testing. What is desired in the first place is proactive testing at various stages of the Web development lifecycle. Benefits of proactive testing include assurance of proper functioning and guaranteed performance levels, avoidance of costly retroactive fixes, optimal performance, and lower risk. Testing and validating a large complex Web system is a difficult and expensive task. Testing should not be seen as a one-off activity carried out near the end of development process. One needs to take a broad view and follow a more holistic approach to testing — from design all the way to deployment, maintenance, and continual refinement. Web testing into the following broad categories and provides excellent practical guidelines on how to test Web systems: [7] • Browser compatibility • Page display • Session management • Usability • Content analysis • Availability • Backup and recovery • Transactions • Shopping, order processing • Internalisation • Operational business procedures • System integration • Performance • Login and security Experience shows that there are many common pitfalls in Web testing and attempts should be made overcome them. III.

A. SOA foundation reference model The IBM SOA foundation includes an SOA reference model [8], as in Figure 1, which shows the key capabilities enquired to support Service-Oriented Architecture. Because this model is itself based on service orientation, it allows for the incremental adoption of SOA as new business requirements arise, starting from small projects, and gradually broadening integration across the enterprise.

SERVICE ORIENTED ARCHITECTURE

Service Oriented Architecture (SOA) is a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains and implemented using various technology stacks. In general,

Fig 1. The SOA foundation reference model

2

Proceedings of 5th National/ Pacific Regional Conference on Information and Communication Technology and Management 5th-6th March 2010, Mumbai. [3]

B. SOA Life cycle The IBM SOA foundation uses four phases in its definition of the SOA life cycle: 



[4]

Model includes business analysis and design (requirements, processes, goals, key performance indicators) and IT analysis and design (service identification and specification).

[5] [6] [7]

Assemble includes service implementation and the building of composite applications.



Deploy includes application deployment and runtimes such as Enterprise Service Buses (ESB).



Manage includes the maintenance of the operating environment, service performance monitoring, and service policy enforcement.

[8]

SOA governance and processes, as defined above, underpins these four phases. This is displayed in Figure 2.

Fig 2. SOA Life Cycle IV.

CONCLUSION

Web Engineering deals with the process of developing, deploying and maintaining Web applications. In this paper we have identified SOA as a key step in web engineering process. If SOA is considered at the architectural level for a web application development, it can provide benefits, which facilitate the manageable growth of large scale enterprise systems, to enhance Internet-scale provisioning and use of services and also to reduce costs in organization. It is also a scalable paradigm for organizing large networks of systems that require interoperability. Web application developer using SOA principles is better equipped, evolvable and manageable. The infrastructure SOA is more agile and responsive than one built on an exponential number of pair-wise interfaces. Therefore, SOA can also provide a solid foundation for business agility and adaptability. V. [1]

[2]

REFERENCES

Yogesh Deshpande1, San Murugesan2, Athula Ginige1, Steve Hansen1, Daniel Schwabe3,Martin Gaedke4, Bebo White5, “WEB ENGINEERING” , Journal of Web Engineering, Vol. 1, No.1 (2002) 003-017 Marco Brambilla, et.al. “Experiences in the Design of Semantic Services Using Web Engineering Methods and Tools” , Lecture Note in Computer Science, Journal on Data Semantics XI, Volume 5383/2008.

3

Ivar Jørstad, Schahram Dustdar, Do Van Thanh, “A Service Oriented Architecture Framework for Collaborative Services”, Proceedings of the 14th IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprise (WETICE’05). M. José Escalona, Nora Koch,” Requirements Engineering for Web Applications – A Comparative Study”, Journal of Web Engineering, Vol. 2, No.3 (2004) 193-212 Sawyer P., Kotonya G. (2001). Software Requirements. Chapter 2 of the IEEE SWEBok Project Report. Grady Booch Ivar Jacobsen and James Rumbaugh. The Unified Software Development Process. AddisonWesley, 1999. San Murugesan, Athula Ginige, “Web Engineering:Introduction and Perspectives” , Chapter 1, IGI Global http://www.ibm.com/developerworks/webservices/library/ws-soaterm1/, “Service Oriented Architecture”