text:
As Envestnet's portfolio consulting group, Envestnet | PMC is the ultimate "advisor to the advisor." Our goal is to strengthen the relationship between advisors and their clients, by helping advisors and institutions leverage all the tools, capabilities and resources of the Envestnet platform.
Whether you're an independent advisor, a broker-dealer or an institutional investor, Envestnet | PMC provides you with all the experience and solutions you need — from comprehensive manager research to portfolio consulting and portfolio management — to help you improve client outcomes.
Latest Insights
The Envestnet Edge:
January 2017
Investing in Trump's Economy? Proceed With Caution
Now Available


text:
Some people in this world take things for granted You don't know what you've got till its gone Time after time they get chance after chance And still their ignorance lives on They expect all for nothing Like the world owes them something Their responsibilities they push to one side But times they are changing You best start behaving From karma you cannot hide For too long you've gone in your fantasy world Its time to see the truth Open your eyes and look around In the mirror you won't find youth It'll hit you like shock like a brick in the chest Your world will come crumbling down You've done so much damage to the people you've met You'll stand alone there's no one around Coz in your selfish dazes and me me me spats You've pushed everyone away Everyone who cared and put up with your shit Has now seen the light of day Too many years they've stuck by your side Helping and guiding you through But you've not listened to a word they've said Ans finally they see the real you Whether you'll change is a mystery Only time will tell But unlike before you'll get no help From a distance I wish you well
© Copyright 2017 niccibo. All rights reserved.
Status: Finished
Genre: Poetry
You put into words what a lot of people have become, or have dealt wit. I've also known a few people like that, unfortunately. I don't know if they'll ever get a clue.
I read this twice and it was even better second time around: nice controlled anger, nice command of language, good rythm. Second half maybe needs a little polishing, but loved the last line.
Paste the link to picture in the entry below:
Paste the link to Youtube video in the following entry:
Cannot annotate a non-flat selection. Make sure your selection starts and ends within the same node.
An annotation cannot contain another annotation.
There was an error uploading your file.

subset: commoncrawl


text:
Shrien Dewani arranged to have his new bride murdered after striking a deal with a taxi driver in South Africa where they were on their honeymoon, the High Court in Cape Town heard.
The case of the British businessman who escaped unharmed on the night Anni Dewani, 28, was killed in an apparent car jacking has been the subject of furious speculation and police leaks in South Africa.
Yesterday, sensational claims were made before the High Court by taxi driver Zola Tongo, who was jailed for 18 years for his part in the killing after making a plea agreement with the prosecutors. He alleged that Mr Dewani had offered him R15,000 (£1,300) to hire hitmen.
As the South African authorities said that Mr Dewani's extradition from the UK "was likely to be considered", his publicist Max Clifford described the allegations as "totally ludicrous and very hurtful".
The couple, from Westbury-on-Trym, Bristol, had only been married for a fortnight when they were held at gunpoint on the night of 13 November.
They had eaten dinner in the Cape Winelands region when they asked their taxi driver to take them to Gugulethu to see some of "the real Africa". The Volkswagen Sharan they were driven in was carjacked shortly after 10pm when the gunman forced Mr Dewani and Tongo from the car.
Mr Dewani, 31, who admitted it was an impulsive decision to drive through a dangerous township at night, said he was thrown out of a window of the hijacked taxi after pleading with the attackers to release him and his wife.
Mrs Dewani's body was discovered the next day in the abandoned car in another township on the outskirts of Cape Town. The Swedish-born engineer is believed to have been shot three times. Her husband's rapid return to Britain led to speculation in the South African media.
Yesterday Tongo, 31, appeared in the dock as Mrs Dewani's father, Viand Hindocha, sat nearby struggling to contain his grief. In his formal admission, Tongo claimed he had been waiting for fares at Cape Town International Airport when the couple asked to be driven to the five-star Cape Grace hotel on the city's Waterfront.
"After we arrived at the hotel, Shrien Dewani approached me alone and asked me if I knew anyone that could 'have a client of his taken off the scene'," Tongo said.
"After some discussion with him, I understood that he wanted someone, a woman, killed. He said he was willing to pay an amount of R15,000. Shrien Dewani said he had US dollars and could pay in US dollars."
Later that day, Tongo claimed he spoke to a friend and was put in touch with Xolile Mnguni, 23, and Mziwamadoda Qwabe, 25, both of whom are from Khayelitsha. The pair are due to appear at Wynberg Regional Court on 25 February to face charges of murder, aggravated robbery and kidnapping.
Their plans initially went awry when the hitmen failed to appear so Tongo took the Dewanis on to have supper, the court heard. "Prior to entering the restaurant, Shrien Dewani asked me what was happening and said he wanted the job done that night," Tongo said.
As the couple ate, Tongo said he received a call from the hitmen who confirmed they would be in place. As they attacked, the driver was ordered out of the vehicle first, he said. "I knew that the deceased would be kidnapped, robbed and murdered after Shrien Dewani had been ejected from the vehicle in accordance with the plan," he said.
Tongo was later charged with murder, kidnapping, robbery with aggravating circumstances and perverting the course of justice.
Western Cape Director of Public Prosecutions, Rodney de Kock, told Judge President John Hlophe: "The alleged hijacking was in fact not a hijacking but part of a plan of subterfuge which Shrien Dewani, the husband of the deceased, and the accused had designed to conceal the true facts, to wit that the deceased was murdered at the insistence of her husband."
Mr Clifford said his client was totally innocent and was in Britain receiving medical treatment as well as trauma counselling. "These allegations are totally ludicrous and very hurtful to a young man who is grieving the loss of the woman he loved," he said.
- More about:
- Cape Town
- Max Clifford
- Restaurants
- South Africa


text:
your falling; your screaming; your running with pain
out of this world and into your own
shutting down all the lights and into the darkness
i can still hear you screaming within and hurting with agony
all the world around is surrounded by pain
so how can we exist in a world so vain
i can see you threw the mask you put on and see all the tears inside your eyes
and knowing completely the pain that lies inside
because your busting threw the walls and into your own world
saying your okay when your actually going insane
you know that im right and you may want to deny but thats okay
thats okay...if you want to deny
you can stay in the pouring rain
© Copyright 2017 myheart. All rights reserved.
Status: Finished
Genre: Poetry
Book / Romance
Book / Romance
Book / Romance
Paste the link to picture in the entry below:
Paste the link to Youtube video in the following entry:
Cannot annotate a non-flat selection. Make sure your selection starts and ends within the same node.
An annotation cannot contain another annotation.
There was an error uploading your file.


text:
Tropical Fish Keeping - Aquarium fish care and resources (http://www.tropicalfishkeeping.com/forum.php)
- Anabantids (http://www.tropicalfishkeeping.com/anabantids/)
- - Gouramis and sajicas (http://www.tropicalfishkeeping.com/anabantids/gouramis-sajicas-32610/)
Gouramis and sajicas
Does any one know if i would be able to have my Gold/opaline gouramis with sajicas. as i have been offered some.
hello and welcome.
i think these are peacefull fish,however someone else should
be along soon,and wil help you out i'm sure.
in the time between could you let people know a little more about your
tank. ?
have done hope you guys can help.
Put it to the test and they seem to be geting on like a house on fire.
Cheers anyway
i'm sorry no one else has been able to pop in here and help you.
i wish you well with the fish,and hope they get on.
|All times are GMT -5. The time now is 11:51 AM.
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
vBulletin Security provided by vBSecurity v2.2.2 (Pro) - vBulletin Mods & Addons Copyright © 2017 DragonByte Technologies Ltd.
User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2017 DragonByte Technologies Ltd.


text:
This item is currently unavailable
With 500 lumens, the TSL-S500 headlight commands your attention on the road and the trail. Five different modes are powered by a long-lasting, rechargeable Lithium-ion battery that is built into the light body. Plus, the battery is user-replaceable. With the included USB cable, you can conveniently recharge your light right at your computer. It also includes a quick-release handlebar mount.
Not yet rated. Be the first to
Write a Review


text:
|Message view
|« Date » · « Thread »
|« Date » · « Thread »
|"Praveen Peddi" <ppe...@contextmedia.com>
|Re: Adding a new soap service problem
|Fri, 24 Sep 2004 16:04:06 GMT
I thought there r 2 ways of deploying a soap service. Either using command line or using admin page. I used command line. I don't know if you need to use both. Praveen ----- Original Message ----- From: Tommy Kalafut To: firstname.lastname@example.com Sent: Friday, September 24, 2004 12:00 PM Subject: RE: Adding a new soap service problem I am still a little confused by deployment. (I am working with a subcontracted prototype that uses SOAP.) Do you also have to deploy your service in the Soap admin page at http://localhost:8081/soap/admin/index.html? (Your port number may be different.) Tom Kalafut Interchange Crew Member Trident Systems, Inc. email@example.com (703)691-7798 ------------------------- The opinions expressed in this email may not necessarily reflect the opinions of Trident Systems, Inc. size=2 width="100%" align=center tabindex=-1> From: Praveen Peddi [mailto:firstname.lastname@example.com] Sent: Friday, September 24, 2004 11:54 AM To: email@example.com Subject: Adding a new soap service problem Hi all, I have 5 soap services running and now I deployed a new service using command line tool as follows: org.apache.soap.server.ServiceManagerClient http://host:port/soap/servlet/rpcrouter deploy NewServiceDD.xml I get no errors and even I can see the new service in the admin page. But when I connect to the new service using a soap client, it gives an error saying no service with the specified name. I am using tomcat as the server. I am sure i might be missing one simple thing. Any help would be appraciated. Praveen ************************************************************** Praveen Peddi Sr Software Engg, Context Media, Inc. email:firstname.lastname@example.com Tel: 401.854.3475 Fax: 401.861.3596 web: http://www.contextmedia.com ************************************************************** Context Media- "The Leader in Enterprise Content Integration"
|View raw message


text:
Agape Players Christian Youth Theatre extends invitation to high school and college kids
Do you love to sing and dance, and are looking forward to a summer of fun? Agape Players, a Christian youth theatre group invites all interested high school (as of September 2011) and college age students to come together and form the cast of their next production. Application and deposit need to be turned in by Wednesday, June 1st. Auditions will be held at Faith Community Church, Franklin, on Monday, June 13th at 6:30 pm. Twice-weekly rehearsals (Mondays and Wednesdays, 6:30 pm - 9:00 pm) begin June 20th and continue until August 3rd. Performances will be August 5th, 6th and 7th. Visit www.childrenschristiantheatre.com/agapeplayers for details and forms.
Sally Carlson, an Agape leader, recently talked about the upcoming production. When Mrs. Carlson was asked what play will be produced this summer, she responded "It depends on how many kids sign up. If we only have seven, we will use a script that needs a smaller cast. If we have a lot of kids, then we will do a play with a larger cast. Everyone who auditions will have a part in the program."
Mrs. Carlson is Director of Music at Faith Community Church. She co-directs Agape Players and Children's Christian Theatre (CCT) with Jay Reinke and Laurie van Wieringen. CCT is an ecumenical outreach ministry affiliated with Faith Community Church. CCT brings kids in grades three through eight together to perform wholesome family oriented musicals. In the past, casts have included more than 40 kids from almost as many different churches of all sorts of denominations. Previous productions included "Nic at Night" and "Son Seekers Summer Vacation." Visit www.childrenschristiantheatre.com for more information.
Faith Community Church is based in Franklin, WI and is a member of the National Association of Christian Congregational Churches and the Wisconsin Congregational Association. FCC is located at 7700 West Faith Drive, Franklin (this is about ½ mile south of Rawson on 76th Street). Call 414-433-0222 or visit www.faithcc.us for information and worship times. You can follow us on Facebook, too.
More from User Submitted Stories
- 2017 Franklin Flame Fastpitch tryouts
- Welcome Pokemon Go Players
- Magician Tim Stolba to Perform at Oak Creek Public Library
- KIDS From Wisconsin to Rock New Berlin West Aug. 19
- Melinda Myers to Present Twice Daily at The Wisconsin State Fair
- Queen of Diamonds Fastpitch Tryouts
- Annual Festival at Polonia Sport Club
- Croatian Eagles Team Wins Interational Tournament
- Support Law Enforcement Families on July 27 at the Point After!
- Ebenezer's Pareting Tip: What is Helicopter Parenting?


text:
Mr. Bergman works in Lenexa, KS and specializes in Family Medicine. Mr. Bergman is affiliated with Overland Park Regional Medical Center.
Family Medicine
Medical School: Not Available
Please verify insurance information directly with your provider's office as it may change frequently.
15900 College Blvd Ste 100
Lenexa, KS 66219
(913) 744-4300
Fax: (913) 859-9134
Practice Website: Not Available
Accepting New Patients: Yes
Medicare Accepted: No
Medicaid Accepted: No
Not Available
9755 Ridge Dr
Lenexa, KS 66219
15325 W 95th St
Lenexa, KS 66219
14809 W 95th St
Lenexa, KS 66215
8700 Bourgade St Ste 2
Lenexa, KS 66219
8700 Bourgade St Ste 2
Lenexa, KS 66219


text: This Tool Shows You How to Redeem Your Travel Rewards, Depending on the AirlineKristin Wong8/17/16 7:30am43EditPromoteGo to permalinkOnce you've earned your travel rewards, it's time to cash them in for a free flight. Some rewards programs are confusing to navigate, though. AwardAce shows you how to book your rewards travel, step by step, depending on the airline.


text:
Category:Spencer House
From Wikimedia Commons, the free media repository
This is a category about listed building number 1264952. (More images)
Media in category "Spencer House"
The following 14 files are in this category, out of 14 total.
- Spencer House West Front.jpg 102 KB
- Spencer House.JPG 1.3 MB
- Spencer House.jpg 1.32 MB
- Historic houses in London
- Grade I listed houses in London
- Houses in the City of Westminster
- James Stuart (1713-1788)
- Neoclassical houses
- Palladian architecture in England
- Historic house museums in London
- Museums in the City of Westminster
- Grade I listed buildings in the City of Westminster
- Mansions in England


text:
Ozone friendly aerosol spray with 20% DEET for medium protection The Insect Repellent Factor is a quick and easy way to choose what repellent you need to protect yourself from mosquitoes, midges and other biting insects. The higher the IRF®, the better the protection. Insect repellent factor : - Up to 8 hours medium protection . - For use in countries with no known risk of malaria or other insect transmitted disease. - Ideal for home and short haul beach holidays. - For adults and children from 3 years.
Cheapest price we found
|Visit Store
Prices are updated periodically, the prices quoted here were correct at the time of last update.
Patient gathers information on a vast range of over-the-counter treatments and beauty products from reputable websites and registered online pharmacies. We perform a price comparison so that you can see who offers the best price.


text:
Are you looking for a Business internship in Missouri? Business internships are the best way to bridge the gap between going to school and landing great job. Internships can help provide valuable work experience by learning the ropes from more experienced professionals. At the end of your internship, you'll have relevant experience to help you decide if starting your career in the field of your internship is the right choice for you. It also helps that 7 out of 10 internships result in a full time job offer, which means interning in Missouri can also serve as the foundation to landing a full time job in that city after graduation.
Business summer internships in Missouri are pretty common, but don't expect to be in charge at the end of your internship! Usually, you'll have to work from the bottom up, but interns are much more likely to get a job offer from the employer they're interning with. If you decide to intern at a smaller company, you'll sacrifice the name prestige for other benefits, such as having an opportunity to see your projects go from start to finish. Simply gaining Business experience is essential in order to provide value and creativity to the team.
Ready to get started? Search for Business internships in Missouri below.
Search For Business Internships In Missouri
Marketing / Social Media Intern :: [Kansas City, MO]
Marketing Management Trainee
Entry Level Management Trainee
Leadership Development Program
Social Media Manager
SEO and Internet Marketing
Salesperson: PAID Sales / Marketing Internship (Virtual)
Website design and coding
Marketing Intern
- Business Internships in Jefferson City, MO
- Business Internships in Kansas City, MO
- Business Internships in St Louis, MO
- Advertising Internships in Missouri
- Business Internships in Missouri
- Communication Internships in Missouri
- Design Internships in Missouri
- Development Internships in Missouri
- Education Internships in Missouri
- Event Planning Internships in Missouri
- High School Internships in Missouri
- Human Resources Internships in Missouri
- Management Internships in Missouri


text:
Second-generation web
Second-Generation Web
The second-generation web is a dynamic and complex social system which has had unforeseen growth over that past few years. Online communities have proliferated, which interact with each other in a self maintaining manor supported by interactive applications such as bookmarking, blogging, instant messaging and wikis. The emerging range of Semantic Web and other open source technologies promises to increase the scale and maturity of Web 2.0. Since this evolution in web activity, a number of Enterprise 2.0 Collaboration platforms are beginning to emerge. By leveraging certain Web 2.0 attributes, these platforms are providing organizations with a system that gives employees, partners, suppliers and customers the ability to collaborate with each other by collecting, generating and sharing business knowledge. This project is based on the concept that enterprise collaboration must evolve towards a new paradigm in order to promote competitive advantages and streamline business processes. With this in mind, an Enterprise 2.0 Platform that promotes its users to collaborate and share information is presented. This architecture will help to stimulate the business social environment into one in which all the stakeholders will be able to share and access knowledge regardless of traditional constraints such as geographical location. To achieve this, the architecture will take advantage of specific open sources technologies and through the concept of a mash up orientated environment.
I understand the nature of plagiarism, and I am aware of the University's policy on this
I certify that this dissertation reports original work by me during my University project except for the following (adjust according to the circumstances):
- The technology review in Section 2.5 was largely taken from [17].
- The code discussed in Section 3.5 was written by my supervisor.
- The code discussed in Section 4.2 was developed by me during a vacation placement with the collaborating company. In addition, this used ideas I had already developed in my own time.
Acknowledge anyone who has helped you in your work such as your supervisor, technical support staff, fellow students or external organisations. Acknowledge the source of any work that is not your own.
1 Introduction & Overview
1.1 Introduction
Computing and information technology has undergone fundamental changes over the last two decades. The World Wide Web has successfully evolved from a static web of one-way published media towards a new community-driven platform. Second generation websites are complex social systems of unprecedented growth and dynamics. On-line communities have emerged which interact in a self-organizing manner, supported by applications including bookmarking, tagging, blogging, and wikis.
Traditionally many organisations have deployed intranet services for internal communications and access to shared information for all of their staff. For organisations with distributed workforces such systems add significant value to the business. By connecting the workforce through the means of a centralized application, organisations have been able ensure all staff have the required means of communication and access to information necessary. While intranets systems can add value to an organisation, the potential to enhance productivity and communication in this area is significant. Businesses and organizations are constantly trying to evolve in order to streamline business practices in an effort to reduce costs and improve efficiency. As global market competition increases, collaboration is becoming a more essential part of improving productivity and innovation at the personal, team, group and business coalition levels. Remaining competitive in the business environment is a key driver for many organizations; the ability of connecting information from various sources through the means of a single entity can be a very attractive prospect. [2]
With the recent success of many Web 2.0 technologies, the style and functionality of web technologies is moving forward at a remarkable pace. Gradually, enterprises are picking up on the trends and are starting to adopt these technologies to improve their business collaboration. Enterprise collaboration software enables organization to leverage desirable Web 2.0 attributes in the business environment; such software is commonly known as Enterprise 2.0. As a result Enterprise 2.0 platforms are more than an intranet or web conferencing system, they connect users and provides them with the necessary tools to find and exchange information in an easy manor whether they are working from an office of tethered from a remote location. The new Enterprise 2.0 model has helped to encourage the uses of tools which are common place among second generation websites into organizations. Forrester Research predicts that Enterprise 2.0 will become a $4.6 billion industry by 2013 and social networking software will gain the bulk of the market. [3] Both large and small-to-medium size enterprises are beginning to deploy Enterprise 2.0 platforms. When used in conjunction with a strategy which is unique to the business context, such platforms can offer a range of benefits to the business.
- Increased Collaboration
- Innovation
- Increased Efficiency & Productivity
- Improved Employee Relations
- Increase in availability and sharing of information
- Substantial growth in Business to Customer activity (B2C)
- Business to Employee (B2E)
- Business to Business (B2B)
1.2 Background & Context
During a 12 month period of works placement in a medium sized financial institution, it soon became apparent that there was an array of applications which needed to be maintained. It was also obvious to me that various channels of communication existed, different teams and departments developed their own methods of collaboration which ranged from email messages, 'Facebook' instant messaging to more traditional forms such as notice boards and post-it notes. Some such methods posed security issues and others left a lot to be desired, communication between certain departments appeared to be poor. After reviewing the internet usage records it became apparent 'Facebook' was the most visited site, since then 'Facebook' has been blocked by the IT dept in an effort to reduce in proper use of resources. Many enterprises have a wealth of knowledge and interests which is spread among employees, unfortunately due to constraints such as geo-graphical location and lack of infrastructure this information is not always shared effectively.
1.3 Scope & Objectives
The aim of this paper is to provide an enterprise system that is an alternative approach to communication and collaboration within an organisation. It is to be determined whether the use of second generation web based technologies which will help to reinforce the relationship between the business and the employee. In order to achieve this following objectives have been identified;
a. Gain an understanding of enterprise collaboration systems and identify critical success factors and the risks and benefits associated.
b. Research the current state of Web 2.0 collaborative technology and determine which components may be useful and can be adapted to the enterprise environment.
c. Propose an Enterprise 2.0 model.
d. Investigate various techniques and concepts in order to determine which design and development practices are best suited to solve the problem.
e. Design and implement an experimental application to demonstrate the way in which value can be added.
f. Identify areas of future research.
1.4 Research Methodology
In order to gather requirements and contextualise the proposed enterprise system implementation and associated success factors with second generation technologies, research has been conducted and data collected. Different sources of information have been considered ranging from whitepapers to a global survey. The collected data was analysed to identify the critical success factors which are associated with enterprise collaboration software implementation and to define requirements, in doing this a proposed model is specified.
1.5 Assumptions
It is assumed, for the purpose of this study
1.6 Achievements
1.7 Overview of Dissertation
This work consists of thirteen chapters, this introduction being the first one of them. This first chapter is introductory, giving a general overview of the context, problem and work conducted. Following this, the second chapter provides the foundation of research into the current state and trends in Web 2.0 technologies, whilst also discussing the adoption and use of such technologies by enterprises.
Chapter three outline the problem in which this project aims to solve, whilst providing justification and clarification on the suitability of the problem.
Chapter four considers different recognised development methods which are used in software development and provides justification over the method of choice. It also then goes on to discuss the overall lifecycle of the project from conception through to deployment.
Chapter five outlines considerations which should be made during the design element of the application.
Chapter six clarifies the project requirements.
Chapter seven is an investigation into suitable technological solutions
Chapter eight Design patterns - defines the architecture strategies and design patterns which are used to develop the application architecture during the construction phase.
Chapter nine - Design overview
Chapter ten, architecture
Chapter eleven provides a detailed treatment of project modelling. Use-case models are presented as a means by in which user requirements can be understood in terms of implementation. Use-cases represent how users envisage a system being used and the main actors involved.
Chapter twelve outlines the components and there functions.
Chapter thirteen - implementation
Chapter fourteen - conclusions
1.8 Acronyms, Abbreviations, Terms and Definitions
Please refer to Appendix A for a list of all acronyms and abbreviations.
2 Web 2.0 in the Enterprise
2.1 Introduction
This chapter presents the state of current Web 2.0 technologies, with a focus on the use in the Enterprise environment. It begins by reporting on the current and future trends in web development. Then goes on to exhibit which tools can be used or adapted specifically for aid with communication and collaboration within the enterprise environment. In order to achieve this various sources of information has been collected, including a global survey conducted by Mckinsey and Company on 'Building the Web 2.0 Enterprise.[1] This holds particular relevance to this project as it shows results from a global literal survey and unprecedented scale. By conducting such an analysis of information at this stage it possible to have a clear understanding of the potential benefits and risks which could affect the overall success or failure of the project. This in turn will provide a foundation which will drive requirements.
2.2 Evolution of the Web
Since the conception of the web, social networks have evolved at a remarkably fast pace. The web has enhanced the possibility to create social networks; links and relationships are established not only on interests, but on friendships and other social ties.
"The web is more a social creation than a technical one. I designed it for a social effect - to help people work together and not as a technical toy. The ultimate goal of the Web is to support and improve our web like existence in the world." - Tim Berners-Lee
The Semantic Web, essentially a Web that understands its content, was part of Tim Berners-Lee's initial idea in creating the Web. He envisaged a globally distributed computer network that grants users access to stored information, but also understands the information well enough to interpret it. The Semantic Web continues to evolve, and when it is realized, the Web will again increase in significance. As the Web begins to understand the content we give it, it will be able to assist in routine procedures that are today only achieved through human work.
2.3 Web 2.0
Web 2.0 is a term which is rather undefined; it is used to describe new web applications or online services. In respect to this dissertation, it means any kind of online service which enhances web functionality in order to share and collaborate with others. This can be through the means of articles in a wiki, instant messaging, adding a friend, posting a blog, collaborating, tagging and more. In order to gain an understanding of the tools used thought the web a brief summary is provided below.
2.3.1 Social networking
2.3.2 Blogs
2.3.3 Wikis
2.3.4 RSS Feeds
2.4 Enterprise 2.0 Context
It is widely believed that the term Enterprise 2.0 translates into the use of publicly available Web 2.0 services such and 'Facebook' and 'Twitter' by organizations. However, the focus of Enterprise 2.0 is in terms of a specific product or service which is specifically designed for organizations. Major players in the software industry are all releasing, or have already done so, Enterprise 2.0 platforms which are designed specifically for use within organizations.
A Forrester Research report published in 2008 predicts that Enterprise 2.0 will become a 4.6 billion USD industry by 2013 [1].
2.5 Specific Organization
The potential benefits and risks of introducing Web 2.0 style software solutions into the Enterprise environment vary depending on the organization in question. When assessing the risks and benefits of such an implementation, factors such as industry, organizational size, age profile, knowledge and culture should be carefully considered. Since the success of Web 2.0 technologies on the web, a number of issues have emerged which may affect the adaptation into the enterprise environment. Understanding such issues will help to clarify what needs to be done in order to successfully evolve existing models and technology.
2.5.1 Key factors in adopting Web 2.0
It is relevant to outline what issues organisations may face when considering the introduction of Web 2.0 style systems into the workplace. It is especially important as these factors will affect the choice technology, architecture and design of the system.
22.214.171.124 Scale
Web 2.0 technology successes relies on participation, the success can be measured by the amount of user actively contributing to the community. The web consists of millions of users which Web 2.0 organizations activity try to attract but in the enterprise environment there is a far smaller pool of users. Therefore to encourage participation in the proposed system, the user interface to be simple and pleasing to use, other strategies can also be used such a points of interest and internal publications. Web 2.0 tools and approaches can be used, but they should be adapted to ensure the suitability for use among small groups.
126.96.36.199 Security
There are different levels of security tolerance which exist varying between individuals, organizations and industries. Few additional security issues have been raised by Web 2.0 technologies compared with other internet technologies, although data protection and personal privacy does pose certain problems. These issues should be addressed by using existing IT security polices which exist in the organisation in hand. However any technology used needs to be assessed on security credentials.
188.8.131.52 Identity
As already touched upon, personal privacy issues do exist. Most Web 2.0 technologies allow a certain degree of anonymity. In the enterprise environment such anonymity is not always necessary, although a method of clear identification and authentication is required so that contributors are known and validated.
22.214.171.124 Information protection
It is important for many organizations to protect information for regulatory and competitive reasons. As enterprise systems are usually used by employees only, in many cases this is not a real issue. However, due to the nature of the system, organizations may want to have tools external visible to existing or potential customers, therefore appropriate boundaries should to be established to ensure internal and external information is kept entirely separate.
184.108.40.206 Audit ability
Many regulations are increasing forcing organization to keep an audit trail of communication; this is especially true in archiving email communications. However, other forms of communication which exist in Web 2.0 technology pose concerns regarding the traceability of messages.
2.6 Potential Benefits to Organizations
The potential benefits of Web 2.0 technology in organization can be categorized into four key benefits:
2.6.1 Greater Productivity & Efficiency
Increased productivity
Innovation and product development
Efficient project management
Improved team performance
2.6.2 Increased Staff Engagement
More efficient internal communications
Increased staff engagement
Greater collaborative engagement among employees
Possibility of more effective shared learning and development
2.6.3 Access to Knowledge
Centralized access point to knowledge and expertise
Enhanced document search
2.6.4 Improved Reputation
Greater attractiveness of young employees
Increased market promotion and visibility
Customer retention
2.7 Potential Risks to Organizations
The benefits of such Enterprise 2.0 technology are clear; however certain risks and concerns do apply to some organizations. It is important that all risks are fully understood and addressed to ensure that risk of failure is kept to a minimum and organizations would theoretically feel confident in adopting the final system. The potential risks can be categorized into six key risks;
2.7.1 Reduced Productivity
Reduced staff productivity
2.7.2 Loss of Control
Loss of control of information flows
Negative internal comments
2.7.3 Damage to Reputation
Inappropriate staff behaviors
2.7.4 Security
Information loss
Network Security
2.7.5 Reliability
Information unreliable or incorrect
2.7.6 Pressure on Resources
Bandwidth overheads
2.8 Summary of Findings
Enterprise 2.0 is not a technology but can be described as a business strategy which combines various techniques and technologies. The fundamental capabilities of an Enterprise 2.0 application required the combination of not just Web 2.0 tools but security and interaction with existing systems and infrastructure. None of the technologies involved in the strategy are new, as many of the concepts have derived from the prevalent Web2.0, but many organizations have been slow to adopt products mainly due to fact the concept is fairly immature and the benefits are not clearly understood.
3 Problem Statement
3.1 Introduction
This chapter aims to clarify the purpose of this project and identify potential benefits and risks involved with the implementation of the project. This chapter also aims provide justification of the problem's uniqueness and a discussion of why the problem is worthwhile being solved.
3.2 Problem Description
As outlined in Chapters 1 and 2, there is a real need for a system which can be used to help improve productivity, communication and innovation in organisations. In the knowledge-intensive economy, business's have vast amounts of information and data which is not always shared effectively.
3.3 Product Perspective
Flexi Workspace is a new software application which aims to unify communication, collaboration and document management with an enterprise environment. The software aims to enable organizations to bring next generation of desktop and web application to present internal and external content, bringing social networking capabilities to the business end user, whilst maintain enterprise level security and control. As with all new systems there are significant potential benefits and pitfalls. Reaching the goal of a fully utilized online community within an organisation, would reap large benefits from a long-term point of view, with improved communication channels, staff engagement and greater access to knowledge. The plethora of models and tools being used throughout Web 2.0 sites is significant, and choosing the right tool, for the enterprise environment, to accomplish the task in hand is important when considering different options.
3.4 Product Functions
3.5 General Constraints
The major constraints of this project are limited design and construction time due to the length of period allocated by the University.
Other constraints include development environment & resources.
3.6 Assumptions and Dependencies
Flexi Workspace is dependant on the Adobe Air 2.0 runtime for desktop operation and Flash Player 9.0 and above for operation within a web browser.
4 Software Development Lifecycle
The software development lifecycle refers to the process of software design and construction management from conception of the project through to deployment and maintenance. Software has been a key aspect of the modern world for over 5 decades, original methods of development were messy and often based on many short term decisions, sometimes referred to as the code and fix method. This unstructured approach to software development work well for many small systems, however when the systems inevitably grew it became more difficult to fix errors and new features. It soon became apparent that more structured of style of development was needed in order to reduce risk and unpredictability during the development of software. Traditional style methodologies imposed a more disciplined approach to software development with the aim of ensuring more predictable results. Various other methodologies have since been developed, each with its own recognized strengths and weaknesses.
All development methodologies are not necessarily suitable for use of all projects. [1] Therefore in order to ensure this projects structure it is important define the development model in which it will follow. To decide on the most appropriate model an analysis into both heavy-weight and lighter-weight methods will follow.
4.1 The Waterfall Model
As suggested by the name, the waterfall model is a sequential software development process which flows downwards, like a waterfall. As represented in Figure 1. The conventional, systematic waterfall approach to software development is said to be inherited from manufacturing and systems engineering practices. This development method was first adopted during the 1960's for building large scale applications for the U.S defense and space industry.
The waterfall model considers the best practice for software development is a linear or sequential series of phases which take the project from the initial high-level requirements right through to implementation and maintenance. This method requires the elicitation and documentation of requirements, architectural and high-level design, coding, and testing. The model relies heavily on consideration and review of each phase of development. As once the project moves on to the next phase in the process there is little room for changes to be made. Therefore the initial requirements and specification is crucial in the overall success of the project as once the system design and coding is underway there is little room for changes and iterations.
4.1.1 Characteristics
- Predictive Approach
- Comprehensive Documentation
- Process and tool orientated
- Unable to cope with change easily
4.2 The Agile Software Development Model
Developments methods are evolving into lighter weight, faster and more nimble models in order to meet the demands of the development community, mainly driven by the growing internet application sector. Agile development methods are a reaction to such traditional documentation driven software development processes, which were yielding poor results and low customer satisfaction levels.
The Agile Manifesto was first published in 2001 by 'The Agile Alliance' [4]. Four fundamental values were defined;
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
All agile development methods are based on these four values, to name a few: Adaptive Software Development, Dynamic System Development, Extreme Programming, SCRUM and Feature Driven Development.
Agile processes require more discipline on the part of the developers and project management. Change is seen as acceptable during a development.
" To exist is to change, to change is to mature, to mature is to go on creating oneself endlessly." (Henri Bergson)
All these methodologies acknowledged that high quality software and more importantly customer satisfaction is the key priority when developing software systems. In order to compare the different agile methods a table has be comprising detailing the applicable benefits and risks involved.
4.3 Summary of Development Lifecycle
Figure 4. Agile software development lifecycle
5 Application Attributes
This chapter outlines considerations which are to be taken into account during design and implementation of the proposed application. In outlining such attributes a foundation is provided, upon which the architecture of the system can be considered, in part by setting the standards and measures the software must satisfy. These in turn drive design principles that can be used to validate the design and ensure that future releases offer improvements and fixes. These system attributes have been complied following the research and analysis of the adaptation of Web 2.0 technology for use within organisations and general attributes required by software systems alike.
5.1 Framework
Although the proposed application is merely a prototype, it should not be developed is the same way as many prototypes are. It is a key aim to avoid spaghetti code during development to ensure that a structured architecture is created. Design patterns can assist in creating a separation between the presentation and application logic, generally known as one of the most difficult problems developers encounter when designing and constructing such applications. The emergence of third-party frameworks can be present possible solutions to the problem, although it is important to evaluate each framework to ensure that is suits the application. Once a framework is adopted, generally it is not favourable to change to a different framework at any point in time, therefore it is advised the lifecycle of the application is also considered. The framework of the application should have the ability to facilitate future development, as more functionality may be need to be added furthur down the software lifecycle.
5.2 Distribution
5.3 Compatibility
Compatibility is the ability to operate on a range of operating systems and web browsers whilst also being backward compatible with previous releases where necessary.
5.4 Extensibility & Maintenance
Extensibility is the ability for new functionality and capabilities to be added without to the need for major changes to underlying architecture. A key factor for many enterprises whose business processes can be constantly evolving, therefore to ensure the application can be further developed and maintained it is essential that the architectural model has the ability to facilitate this.
5.5 Fault Tolerance
Fault Tolerance is a property of a system that gives it resistance from faults and the ability to recover in the event of component or service failure. Faults of different types are unavoidable when dealing with software; it is important that software/applications can recover from component or service failure and produce enough information about the possible cause. This application is no different, therefore fault handling is a key aspect which is to be further investigated to ensure that application has sufficient infrastructure in place to identify and cope with the problems it may encounter.
5.6 Integration
In the business environment many information streams and services exist, in order to present information from a centralized application, integration between existing systems should be possible. This should be considered during the architecture design to ensure services can be added during the lifecycle of the application.
5.7 Auditable
The ability to trace user activity, faults and errors within an enterprise application is a necessity. In certain industries, such as the financial sector, many regulations need to be met. Email archiving is a well established example of this, however many new forms of communication must also be addressed. Traceability is a key factor for such enterprises when developing or considering software, not only does it offer the ability to track user's activities but also gives maintainers the ability to easily locate errors and faults. This can be fundamental in the maintenance and further development of such applications or platforms.
5.8 Security
There are clearly different degrees of tolerance which exist between organisations and industries. However, to ensure information integrity, the application should have a level of security, which prevents unauthorized access to the application and tools. There are few other additional issues raised by this application which would not already have been addressed in existing IT security policies. However any technology used needs to be assessed on security.
5.9 Performance
Performance is a key attribute of any software system, the response time, utilization, and throughput behaviour of the system should be reasonable. Application profiling carried out to ensure the application operates as expected.
5.10 Data Validation
User input validation is an important aspect of this build, ensuring the integrity of the data is an important factor when dealing in business context. A method in which the application can handle the validation of user input is essential. Ideally the method of validation should be easily extendible and transferable to any aspect of the application.
5.11 Open Source
Where necessary this project should take advantage of free, open source, and community-supported software as an alternative to commercial solutions whenever possible. This will allow the application to build from work already done and negate any costs which are linked to other commercial solutions. It is not always possible to find an open source or free equivalents for a certain technology that also satisfies the requirements. Therefore licenses should be obtained where applicable.
5.12 Summary
This chapter has proposed attributes in which the project and technologies used should satisfy.
The design considerations outlined in this chapter provide the criteria in which should be take in account when analysing different technological options available.
6 Solution Study
6.1 Introduction
Defining the right technologies and solutions for the application is an essential part of the development lifecycle; the wrong choice can have detrimental effects on the whole project, such as lengthened speed of development, decreased performance, a steep learning curve during development and high levels of costs for stakeholders. Although the choice of technology is not an easy decision, many options exist and the supporters often claim that their technology is the best choice. With so many options available it is important to analysis each option in order to ensure that the requirements can be met within the allocated time allowed.
6.2 Client-Side
In a data intensive environment, businesses depend on the ability to be able to work with information efficiently. Businesses are constantly trying to provide a better customer experience than its competition; this includes improved user experience from a business to customer perspective and increased employee productivity. Users want quick and easy access to tools and their information regardless of the computer they are using. They also want a high level of reliability with native operating system features such as a fluid graphically experience, sound, video, dragging and dropping. Developers and software teams are expecting more and more from technology too. Time-to-market offers a high strategic value; therefore the ability to create and develop interoperable software quickly can be very advantageous. Not being able to guarantee that all users are on the same version at the same time introduces many problems for developers and maintainers, therefore pushing out updates need to be easy and fast. In effect a paradox is presented, users and customers are seeking a pleasant experience and businesses are trying to achieve market position and operational efficiency. It is in this context where traditional technologies divide and Rich internet applications capitalize.
6.3 The RIA Solution
RIA is an umbrella term used for describing web applications which look and behave more like a desktop application; key characteristics include interactivity, responsiveness and richness. They often also support elements of validation, error handling, drag and drop functionality and richer controls. RIA technologies help to provide rapid development and deployment through the means of a centralized internet model, whilst providing users with a desktop-like experience as shown in Figure 4. RIA frameworks enable developers to provide a compelling and fluid user experience that gives the impression of a live desktop application in contrast to traditional web applications which require refreshing on each interaction. Although the deployment and access model remains the same, users can operate these applications from any computer using a traditional web browser. Using a browser as the delivery mechanism in this way allows applications to have the same deploy ability that websites enjoy so much.
6.4 Javascript / AJAX RIA's
6.5 Plug-in Based RIA's
RIA technologies provide the same look and feel regardless of environment. To achieve this they utilize a browser plug-in which acts as a client side runtime engine, with cross browser and operating system compatibility. As a result RIAs can offer true platform neutrality. Different RIA technology providers exist; the most mature and widely used is the Flex framework by Adobe, followed closely behind by the Silverlight framework by Microsoft. Sun Microsystems is also trying to define their place in the market with the recent release of JavaFX.
6.5.1 Flex by Adobe
Since the take over of Macromedia by Adobe, Adobe has inherited the Flex project and since made it open source. Easily the most mature RIA framework, flex offers the software development kit and optional integrated development environment and eclipse plug-in. Adobes product description is cited below:
"Adobe Flex is a highly productive, free, open source framework for building expressive web applications that deploy consistently across browsers, desktops, and operating systems by leveraging the Adobe Flash Player and Adobe AIR runtimes" (Adobe 2010)
Flex offers advantages to users and developers alike by leveraging Flash player which is a widely used plug-in across the internet. According to statowl.com it is thought nearly all computers have the flash player installed with browsers such as Google chrome now shipping with the plug-in installed, see Figure 5.
Flex offers tight integrations with other Adobe products from design software such as Photoshop and server-side technology such as Cold-Fusion.
6.5.2 Silverlight by Microsoft
Microsoft has jumped into the RIA market by investing large amounts capital into its Silverlight project. Microsoft's product description is cited below;
"Silverlight is a powerful development platform for creating engaging, interactive user experiences for Web, desktop, and mobile applications when online or offline." (Microsoft 2010)
Silverlight does not yet have to same integration with existing products as Flex, but design product Expression Studio can be used as a suitable IDE. From a platform perspective it now supports Windows and Apple operating systems, with plug-ins available for browsers such as Internet Explorer, Firefox and Safari. Silverlight is targeting Microsoft developers in order to gain market share by leveraging the existing .NET framework, components and language.
6.5.3 JavaFX by Sun Microsystems
JavaFX is a framework for creating Rich Internet Applications, developed by Sun Microsystems and first released in December 2008. Sun's description of the framework is cited below:
"JavaFX is an expressive rich client platform for creating and delivering rich Internet experiences across all the screens of your life." (Sun Microsystems 2010)
JavaFX is the most immature RIA on the market today; Sun Microsystems had the opportunity to seize the RIA market with its Java technology but failed to capitalize on its success. Existing technology provided by Sun Microsystems are generally very functional and are not well known for creativity and design. In order to catch up with Adobe and Microsoft measures need to be taken in order to compensate for the weaknesses which exist. Sun's main advantage is the sheer size of the Java development community; time will tell whether they can capitalize on this valuable attribute.
6.6 Acquainted with Flex
Following this brief evaluation of RIA frameworks Adobe Flex has been chosen to design and develop the software this project. This decision has been based on the following;
- Maturity of the technology.
- Experience with Flash, Action Script programming language and other Adobe software.
- General acceptance of the Flash player browser plug-in.
- Adobe Integrated Runtime - AIR
- HTTP and AMF3 data transfer protocols
- Event driven
- Open Source
6.7 The Flex Framework
This programmatic approach uses Flex's core languages: the XML templating language (MXML) and Action Script.
Flex applications are event-driven. Events let a programmer know when the user interacts with the interface, and also when important changes happen in the appearance or life cycle of a component, such as the creation or destruction of a component.
6.8 Server-side Technology
Communications with back-end services is a key aspect of the application, choosing the most suitable server stack technologies and means of integrating the client with the server is essential. Figure 5 shows the available web 2.0 server technologies which are interoperable with Adobe Flex and therefore applicable to this project. Each of the stacks below are viable and worthy of consideration, therefore to make the right choice some further investigation is required.
6.8.1 J2EE / Spring-Hibernate
J2SE core language and set of libraries and their distinctions become clear on more detailed level of consideration.
There are two existing solutions to integrate a Flex client with a J2EE server environment, both solutions are provided by Adobe. Please see Appendix E for a functionality comparison of BlazeDS and LiveCycle Data Services ES2.
220.127.116.11 Blaze-DS
BlazeDS is an free and open source server based technology which enables Adobe Flex develops to integrate the client application with a J2EE backend environment.
188.8.131.52 Adobe LiveCycle Data Services ES2
LiveCycle Data Services ES2 is a commercial alternative to BlazeDS.
6.8.2 Coldfusion
Coldfusion is Adobe's solution to a servers-side
Linux, Apache, MySQL and PHP is a well-known and proven solution,
The Apache HTTP Server Project is an open-source HTTP server for modern operating systems including UNIX and Windows. Apache HTTP has the ability to be a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards [6].
s but is still "young" and worth consideration as all three languages/frameworks are being actively developed and supported by large community.
A database driven application needs a way to exchange data between database and front-end as efficiently as possible. AMFPHP is a technology written in PHP to emulate the capabilities of a software originally developed by Macromedia, called Flash Remoting. Flash Remoting, unveiled in 2001, is a proprietary, highly efficient technology to connect Flash applications to the server. The benefits when choosing Flash Remoting over other technologies are performance and seamless integration with Flash. It uses a binary message format, designed for the ActionScript object model, called Action Message Format.
AMFPHPis a free open-sourcePHPimplementation of theAction MessageFormat. AMF allows for binary serialization ofAction Scriptnative types and objects to be sent to server side services [8]. AMFPHPallows thin client applications built in languages such asFlash,Flex, andAIRto communicate directly withPHP class objectson the server.
126.96.36.199 Zend AMF
6.10 Summary
During the development of the internet and the web applications that go with it, usability has been sacrificed for the need for rapid deployment and cross platform compatibility. The user experience has been the most effected by this, even though users have somewhat become accustomed to this it was just a matter of time until the disadvantages outweigh the benefits. The use of RIAs can help to demonstrate how we can achieve the best of both desktop and web technologies.
Adobe Flex leverages the cross-platform flash player by presenting a programmatic way to make a flash application. From design to deployment, Adobe offers the best environments and tools for each phase of application development. Now in its forth major version, Flex is maintaining its market share.
One of the primary goals of this project defined in the Chapter 1 is to take advantage of free, open source, and community-supported software as an alternative to commercial solutions whenever possible. The primary reason for this is the general lack of budget, the second reason is, to show what possibilities there are to build an enterprise system without the need for expensive, proprietary technologies, if choices are carefully considered. The available server side technologies which are interoperable with Adobe Flex are discussed below.
As previously stated, the aim of this study is to develop an enterprise rich internet application using the Adobe Flex 3.2 SDK.
However before undertaking this it is, three key questions must be answered:
What is meant by 'an enterprise rich internet application'
7 Requirements
7.1 Introduction
It is proposed that an experimental application is to be designed and developed in order to demonstrate the way in which web 2.0 tools can add value to a business. Although the application does not have scope to be implemented in any business context in the near future, the benefits of the system will be obvious. These requirements have been compiled following the analysis of data collected during the research phase of the project.
7.2 User Characteristics
This software applies to any employee within an enterprise environment. There is no limitation on who would be able to use Flexi Workspace from a technical viewpoint, although limitations regarding access to information and rights and permissions within the system would be applied depending on the usage scenario.
7.3 Usage Scenarios
- Administrator
- Manager
- User
- Public User
7.4 Use-Cases
22.214.171.124 Administrator
The user level will provide administrator functions such as user management.
18.104.22.168 Manager
This level of users will be able to insert new inspection details, facility information and generate letters. They will be also able to modify the entries they made in the past.
188.8.131.52 User
This level of users will be able to do all the record maintenance tasks. They will be able to modify any records created by any users.
18.104.22.168 Public User
This is the system administrative level which will be able to change any application settings, as well as maintaining user profiles.
7.5 Requirements Specification
The purpose of this section is to outline the functional and non-functional requirements of the system. The requirements have been developed specifically to meet the objectives defined in Chapter 1. The following requirements outlined presuppose the general structure and functionality of the system, although this is a definitive list of requirements other functionality may be added during development and revised iterations will follow. A requirements matrix has been complied and should be used to trace requirements throughout development and testing. Please see Appendix B.
7.5.1 Operating Environment
OPE-001: Flexi Workspace Server shall operate on Linux or Windows based server environment. Windows 2003 or Ubuntu Server Edition 8.10 is recommended. Apache HTTP, PHP 5 AMFPHP, MySQL Community Edition v5.1 and Openfire 3.6.4 should all be installed and configured.
OPE-002: If the application is browser based version, Adobe Flash player 9.0+ should be installed. Internet Explorer 6.0+, Firefox, Safari or Google Chrome browsers are all acceptable. Adobe Acrobat Reader 9+ shall be installed on client machines in order for PDF functionality within application.
7.5.2 Design and Implementation Constraints
CON-001: User rights and privileges should be controlled through security groups or roles which allow access control for individuals, workgroups or staff groups.
7.5.3 User Documentation
DOC-001: All development should be documented and high-level descriptions of all major processes provided.
DOC-002: All code produshould have adequate commenting throughout.
7.5.4 Assumptions and Dependencies
7.6 System Requirements
7.6.1 Application Architecture
Description: The application architecture should be structure which facilitate all other requirements and have to ability to be extended.
7.6.2 Error handling
7.6.3 Logging
7.6.4 User Authentication
Description: The system requires a secure authentication facility which checks credentials against database. With the possible extensibility of authentication against LDAP (directory server)
7.6.5 User Authorization
Description: It is required that the user is authorized to view certain information with in the system. Therefore a mechanism for authorizing a user upon request of information is necessary.
7.6.6 Access Control
Description: The user interface should control which aspects of the system are visible depending on the state of the application and/or user scenario.
7.6.7 Remember Me
Description: The login should include a secure method of storing user's credentials upon request.
7.6.8 Update
Description: Automatically force user to update client when new version becomes available. Not required for Web Browser release as update is conducted on hosting machine.
7.6.9 Data Input Validation
Description: Preferably PDF formatted documents, although other types of documents such as MS Office documents would also be useful.
7.6.10 Register User
Description: A method to add new users to the system is required
7.6.11 User File Repository
7.6.12 Message Board
7.6.13 Document Display
7.6.14 RSS Adaptation
7.6.15 Instant Messaging
Description: Preferably PDF formatted documents, although other types of documents such as MS Office documents would also be useful.
7.6.16 Add Friend
Description: Preferably PDF formatted documents, although other types of documents such as MS Office documents would also be useful.
7.6.17 Blog
Description: Preferably PDF formatted documents, although other types of documents such as MS Office documents would also be useful.
7.6.18 Google Maps
Description: Preferably PDF formatted documents, although other types of documents such as MS Office documents would also be useful.
7.6.19 Generate PDF from DB
Description: Preferably PDF formatted documents, although other types of documents such as MS Office documents would also be useful.
7.6.20 Anti-Virus
Description: Preferably PDF formatted documents, although other types of documents such as MS Office documents would also be useful.
7.6.21 Integrated Browser
Description: Preferably PDF formatted documents, although other types of documents such as MS Office documents would also be useful.
7.7 Database Requirements
7.8 Other Requirements
8 Design Patterns
8.1 Introduction
This section discusses the use of design patterns, the methods and reasons for their use in software development. It will discuss which design patterns are applicable and how they can be utilized in order to meet specific architectural and design needs in order to control the behaviour of the application.
8.2 Purpose
Consideration of the application architecture is a fundamental part of this software design. It involves defining the interaction between each element of the application and its resources. By creating a conceptual model, it helps to identify any integration or functional problems, which translates into the system design. The rationale behind using design patterns in software design is that problems are given their own essential character by a sequence of events, or behaviours. Each pattern describes a problem which occurs over and over again in an 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 it the same way twice [6]. When faced with a particular problem, it is unusual to tackle it by inventing a completely new solution which is distinct from existing ones. It is common to recall similar problems that have already been solved and to adapt and reuse elements of them to solve a new problem. This type of thinking is common in many different domains such as architecture, economics and software development. Design patterns can be models or reusable object oriented code which helps developers cope with constant changes in software design and development. These patterns have been used successfully by developers before, and therefore, the pros and cons of the pattern are known beforehand.
8.3 N-Tier Model
Atieris alogicalpartitionof theseparationofconcernsin thesystem. Eachtieris assigned its own unique responsibility in thesystem. Eachtieris viewed as logically separated from one another. Eachtieris loosely coupled with the adjacenttier. [2] It is typical to design applications in this way. The application architecture is critical as it defines the interaction between various elements and components, thereby limiting the complexities of issues during constructing, deploying and maintaining the application. At a conceptual level each tier offers its own unique functionality. Traditionally, web deployed applications follow a three-tiered approach, as shown in Figure 9, for greater performance and scalability.
The three-tiered approach offers increased scalability as it introduces a separation between the logic, presentation and resource aspects of the application. Although the three-tiered approach does not offer true flexibility as it falls short in not separating the application into more specialized functional layers. These short comings are mainly because the business tier becomes too large and has too many functions contained within it. This is where the n-tiered approach provides a more suitable solution for complex applications, by introducing an additional tier a finer grained model is presented. It is preferable to separate the data access elements from the business tier thereby creating the additional tier. By decoupling the data access logic from the business logic in this way it is possible to make the application more flexible maintainable for future development. Figure 10 illustrates the n-tired architecture in which the application is based upon.
8.3.1 Presentation Tier
The presentation layer as the name suggests is the front-end layer that the end-user interacts with. The main responsibilities of this layer are application output display, handling input into the application and instantiating events. The user's desktop operating system is the primary client for this application, taking advantage of the Adobe Air Runtime. Although a standard Internet browser such as 'Internet Explorer' with Adobe Flash Player installed will be the secondary client for the application.
8.3.2 Business Tier
As the name signifies the business layer implements the business rules for the application. This layer contains components which are used to implement the business logic and defines the business entities that are used. The business components perform the core processing within the application; these components implement the following:
- Requests to other business logic, data access layer or other services.
- Interface between the user interface and the resource layer.
- Business rules, such as calculations or conditional logic.
- Implementation of validation such as authentication and authorization.
- Data flow.
8.3.3 Data Access Tier
The data access layer provides the application with connectivity to local or remote services and resources. Persistent connectivity to such resources can be complex in large applications, neither the presentation nor business components need to be aware of this complexity. Moreover there are many forms of services and resources which exist from databases to flat files. Therefore by decoupling the data access logic from the business components allows for a more flexible and maintainable application. The data access layer manages the connection to the data source to obtain and store data. As a result this encapsulates all access to relevant data stores.
8.3.4 Resource Tier
The resource layer includes the underlying resources that the application utilizes to deliver the application service. This
These can include:
- Databases (Directory, SQL, mySQL, etc)
- File System
- Exchange Services
- Jabber (Real-time Communication)
- Web Services
8.4 The Model-View-Controller Pattern
It is reasonable to propose that the given application is likely to change its interface as time goes by, or may have several interfaces at any one point in time. Therefore to build any particular user interface into the core application would have detrimental effects on the whole application, as it would result in making it less flexible, harder to migrate to newer releases and harder to debug. It makes more sense to keep the essence of the application separate from all and any of its user interfaces. As a result as the interfaces change the underlying application would remain relatively constant.
Although there are some development practices that in fact discourage such separation of user interface and logic. The principle objection of Rapid Application Prototyping is its inability to allow the developer to create a structure which is maintainable and scalable, its methods can assist in creating a slick user interfaces for prototyping purposes, although such development practices should be avoided as considerations that influence the design of a GUI should not be the same considerations made when designing the core application.
During the 1970's Prof. Trygve Reenskaug defined an architecture which addresses these software design issues, which was called Model-View-Controller (MVC) architecture. Since then, the MVC design pattern has become commonplace, especially in object-oriented systems. The Model-View-Controller is a compound pattern where many design patterns work in harmony to create applications. As suggested by the name the design pattern consists of three elements.
18.104.22.168 Model
The model is the essence of the application as it contains data and logic to manage the state of the application. From an object-orientated perspective this will consist of a set of classes and variables which support the underlying application. The model takes advantage of other design patterns which include the observer pattern to hold data and the singleton pattern to ensure only one instance is in use at any one time. The model should know nothing about any other interfaces or connections to other systems or the world.
188.8.131.52 View
The view presents the user interface and the state of the application, usually through the means of a screen. For any given version, in any given situation there will be one or more interfaces with the model, these are known as views. The view should not handle application logic just merely display output and instantiate events. In object-orientated terms, a view will consist of classes that give access to the model. Views are often GUI's, although they could be CLI view or API view. The view has knowledge of the model as often objects are bound to variables which are defined in the model. The view takes advantage of the composite pattern to represent the state of the application.
220.127.116.11 Controller
The term controller implies a user interface object of some sort, but the controller does not contain such elements. As pointed out previously user interface objects belong to the view element. Whilst the view handles the output, the controller is an object which handles the input in order to change the state of the application. The controller takes advantage of the strategy design pattern....
The controller pattern helps to implement a centralized point that controls and manages user requests. The controller manages the handling of requests, delegating business processing including security services such as authentication, authorization and access control, managing the views and handling errors or faults.
220.127.116.11 Communication between elements
Each element in the Model-View-Controller design pattern has unique and separate functions, although none of them operate in isolation. In order for the pattern to be successful, each element needs to communicate with one or more of the other elements. Communication between the elements is obligated by a sequence of events which are usually instantiated by an event or user interaction. Figure 7 is a simple representation of the channels of communication between elements. The arrows show the direction of communication.
8.5 Creational Patterns
Creational design patterns deal with the instantiation of objects. The basic method used for object creation could result design problems in certain situations, therefore creational design patterns can help solve this problem by controlling the instantiation of objects.
126.96.36.199 The Singleton Pattern
The singleton pattern is used to ensure that one and only one instance of a class can be instantiated at any one time, whilst providing a global point of access to the object instance. Multiple instances of certain types of objects within an application can cause issues. The model object is instantiated on the initialization of the application and is responsible for global variables and defining events. The singleton pattern should be applied to the model element of the application. This will provide a global access point to the model whilst ensuring there is only one possible instance. This design pattern can be used throughout the application on there classes where the number of instances need to be monitored, although it is not best practice to use this pattern for coding convenience where no deliberate architectural strategy exists.
8.6 Structural Patterns
A structural pattern refers to the use of classes and objects to build larger structures.
8.6.1 Composite Pattern
The composite pattern is used to provide solution to building software systems that are made up of several smaller components. An application is made up of these components, which may be single objects or containers that represent collections of objects. A composite object refers to the collection of components. By grouping objects in this way it is possible to treat the group in the same way as a single instance of an object. This can be useful as it can help to reduce the amount of coding required and therefore making the code more efficient.
8.7 Behavioral Patterns
Behavioural patterns focus on the communication between classes and objects. By using such design patterns a developer can increase flexibility in this communication.
8.7.1 The Observer Pattern
The observer patterns is used as a central point which sends information to subscribing receptors, it makes sense to have a single source of information broadcasting to receptors rather than having several different sources broadcasting the same information. The key feature of the observer pattern is that variables are all stored in one place and sent to all subscribing receptors. This one-to-many relationship allows a developer to create loosely coupled classes whilst yet maintaining information consistency. Maintaining information is this manner is not only efficient but also gives scope for evolution and expansion. The observer pattern should be used throughout the application where the need for components to subscribe to the model exists.
8.7.2 The State Pattern
The state pattern is used to represent and control state of an object. The state pattern is used when an application is required to change its behaviour type at runtime.
8.8 Summary
By using the tiered approach to application design, it is possible to separate the layers functionality, in doing the application becomes more readable and components more reusable. This style of application architecture will help to minimize the risk of spaghetti style code during in implementation.
Other benefits of structuring an application in tiers, becomes obvious when underlying technologies have to be changed.
For Example./ If the application needs to change its database, to a different server, which uses a different database vendor for instance. Many problems for application developers or maintainers could arise, as many different parts of the application may need to be adjusted. This process could be very costly and take valuable time to complete. By structuring the application in a tiered layout, the only adjustments required would be on the data access layer and/or possibly the business layer. No changes whatsoever would have to be done to the presentation layer as it is independent from the data access tier and communicates with it solely through the business tier.
9 Design Overview
9.1 Introduction
Software design is the creative process that needs to be guided and directed. To transform requirements into a functional system, a structured design process is to be followed in order to create a representation of the software system which can be assessed and used by developers as a template for the project there after. Design is considered as an iterative process of transforming the requirements specification into a design specification. Firstly, the conceptual design that defines exactly what the system will do. On approval, the conceptual design is translated into the much-more detailed design specification which allows the developers to understand the project presented. This section aims to give an overview of the solution and precisely how it will be implemented. In order further design the system, this section provides a bridge linking the gathering of requirements and the design specification by outlining the methods and concepts.
9.2 Design Method
A good software design strategy helps to ensure that the system is easy to develop and change. A structured approach provides assistance during the design and implementation to deal with large and complex software and demonstrates how the software and its components fit together. There are many ways to develop good designs, however, every design methods involves some kind of decomposition, starting with a high-level representation of key elements and creating lower-level definitions of how the system's features and functions will work together. It suggested that designs should be created by using one of the following methods;
- Modular
- Data - Oriented
- Event - Oriented
- Object - Oriented
All design methods share the same goal which is to transform outlined requirements into a software system. The decision has been made to follow an object-orientated approach to develop the requirements outlined into a functional software system. This approach is a recognised design method, although as with all design methods there is no proof of correctness due to the fact none are classed as a rigorous science. The object-orientated approach has been chosen for the following reasons;
9.3 Object-Orientated Analysis and Design
The object-orientated design approach provides a comprehensive solution of which has become the preferred approach to analysis and design of large scale software systems. This design method will be used to describe in detail processes and related workflows as well as people and artefacts relating to the system. The purpose of designing the system is this way is to provide a proof of concept to the solution which can be used to visualize and reduce complexity during the development phase. The method begins with an examination of the real world objects that relate to the problem in hand. These objects are identified and characterized individually in terms of their attributes and behaviour through the means. The object attributes and actions are discussed and the design explains how objects interact with each other. The focus is on creating explicit and traceable models, and extensible and reusable architecture using the industry standard Unified Modelling Language.
9.3.1 Methodology
9.4 Programming Techniques
This section provides a short insight into the different programming techniques and concepts which are to be used in the development of Flexi Workspace. Discussing all the details of the techniques mentioned here, would go beyond the scope of this paper. However, the following provides a short introduction to the main concepts and techniques used in the solution.
9.4.1 OOP: Object-Oriented-Programming
Due to the potential scale of this project, several problems may occur during development. A key problem may be as the system grows, components may become inherently dependant on other parts of the system, and therefore the flexibility of the system will decrease. This can in turn introduce more bugs and errors into the system making it harder to maintain and extend. Object-orientated programming is a well known and established concept which aims to provide a solution to such problems with high level programming languages. It is designed to help break down complex applications into to more self contained interacting modules of code. With out the use of such programming techniques the development may turn into a spaghetti of code and bare the characteristics of a rapidly developed prototype, this would have detrimental effects on the project and result in the failing of key objectives set out earlier in this paper, such as maintenance and extendibility. To ensure the proper use of the object-orientated programming it is important each element of the technique is fully understood.
184.108.40.206 Object
An object is a thing or concept. It can be a real-world thing or concept, or an abstraction of a thing or concept expressed as a software representation. An object has state (attributes) and behaviour (method) .Individual objects, also called instances, have identity and are distinct things, and can be distinguished from other objects.
126.96.36.199 Class
A class is a description of a collection of objects with common attributes and behaviour.
In practice, the definition or specification of a class includes the definitions of the attributes comprising the state, the methods implementing the behaviour, and how to handle creation and destruction of an object.
18.104.22.168 Attribute
188.8.131.52 Behaviour
188.8.131.52 Encapsulation
9.5 Refactoring
9.6 Conventions
9.7 Assumptions and dependencies
Contrary to web sites, RIA's requires a client to run on. Flexi Workspace web release utilizes Adobe Flash Player in order to enable browser operation and the desktop release uses the Adobe Integrated Runtime (AIR) 1.5 in order for desktop operation.
One of the goals I set myself is to build the application to be open to extension. This is achieved by a tier-, component- and object-oriented approach in the design of the application architecture.
Ldap NOT POSSIBLE RESOURCES
9.8 Goals and Constraints
9.9 Summary of Design
10 Architectural Design
The architecture of the application is defined by considering a combination of design patterns which were investigated in Chapter 9 & 10. The first of which is the N-tiered approach which defines each layer of the system, in order to achieve the advantages of this model a custom MVC design pattern will be used in combination with the N-tiered approach. Figure 12 shows a conceptual overview of this combination of models.
The advantages of using this MVC design pattern include independence between layers and avoidance of mixing functionalities into different logical layers; maximization of the system's modularity; and encapsulation of data between layers. A more detailed representation of the MVC architecture to be employed is represented in Figure 13.
11 Modeling & Analysis
After defining the requirements of the system and investigating various technological solutions, it is important to model and describe the key elements of the system and the function it will provide. The section provides modelling and analysis in an effort to create a representation of the system.
11.1 Use-Case
Use-case analysis is used to identify objects within the system.
11.2 Authenticate User
The authentication of a user is a key requirement of the application. The user is prompted for login credentials. Once submitted an event is instantiated, the login controller listens for the event. The login controller then processes request and invokes the server handler to communicate with the Database. The result has two outcomes either false or user information as an array. The controller checks the returned data and either updates the model with user information and updates the view state or invokes a notification message to the user. This process is represented by an activity diagram and sequence diagram below.
11.3 Instant Messaging
12 Implementation
13 Testing and Debugging
13.1 Introduction
This section defines the techniques used to test and debug the application during and after the implementation phase of this project.
In Flex's relatively short life, testing and debugging used to be weak points, but the ecosystem has come a long way in a short amount of time with a variety of tooling and advanced capabilities.
When it comes to debugging, you can do simple things to get insight into what's going on. In addition, the Flex Debugger is a robust tool that gives you tactile control over isolating issues.
13.2 Debugging
Flex Builder 3.2 Eclipse plug-in now is packaged with a fully functional debugger where it is possible to step through the code and watch the value of variables in real time.
13.2.1 Utilizing the trace() Function
trace () is a global function in the Flex 3.2 SDK which can be used throughout the application in order to write text to a log. This is an effective mechanism, which can be used to record variables.
13.2.2 Breakpoints
13.3 Testing
Software testing can be described as the process of validating and verifying an application. It is used to ensure the element/application works as expect and meets the requirements that guided the design and development. There are various types of testing which are relevant the application and technology used. The agile design methodology which is been followed throughout the design and implementation governs that testing should take place at the end of each iteration.
13.3.1 Types of Testing
There are three main types of testing which are applicable to this project;
1. Profiling - is a process of testing to which assesses the resource utilization of an application, such testing can be used as a tool to identify memory leaks and unnecessary processing overheads and highlight areas in which the application could be optimized.
2. Unit Testing - is a programmatic way of testing components, functions, and classes. It's considered a back-end type of testing.
3. Functional Testing - is a process of testing which simulates an end-user running the application and verifies that behaviour or information is correct. It is possible to do conduct manually although the risk of human error and large time investment exists.
Different tools and techniques will be applied to each type of testing to ensure that issues can be identified and corrected. To identify appropriate tools brief research into various available products will follow.
13.3.2 Flex Profiling - Profiling
Adobe Flex builder now includes the ability to profile applications to identify performance issues. It is possible to isolate elements of the application in order to address problem which may be occurring. The tool works by taking periodic snapshots of the application, it is able to determine how many objects exist, memory usage, how many functions are called and the related response times.
13.3.3 FlexUnit
13.3.4 RIATest
13.4 Overview of Planned Tests
This section provides a high-level overview of the testing that will be performed. The outline in this section represents a high level overview of both the tests that will be performed and those that will not.
on the type of testing employed, different met testing is conducted during and/or after the coding process. The different types of testing use to validate this application are discussed below;
It's always a good idea as part of your Systems Development Life Cycle to do as much upfront testing as possible before you go live with the application. ASP, PHP, ColdFusion, and other such languages will tell you the line of code and filename when a crash occursthis luxury doesn't exist in the land of Flex because of its compiled nature.
After you've finished the debugging phase, testing is a good idea to make sure new features work the way they're supposed to and previous features continue to function.
Testing is also an opportunity to fine-tune the application.
14 Conclusion
14.1 Summary
As businesses adopt these social collaboration tools within the enterprise to foster collaboration and increase the productivity of their employees, they also find that those tools are invaluable for achieving operational excellence. Enterprise 2.0 can play a vital role allowing customers access to the organization's systems and processes. This level of ongoing collaboration with customers reduces the number of times customers have to contact customer support, resulting in cost savings for the company and increased customer satisfaction.
For IT departments in larger enterprises, developing a private cloud often makes the most financial and business sense. When developing the architectural vision, an enterprise architect should bear in mind the characteristics of cloud computing as well as consider some of the organizational and cultural issues that might become obstacles to the adoption of the future state architecture. When moving ahead, decisions must be made on whether the future-state technical architecture should emphasize compatibility with the current standard or start from scratch to minimize cost. Future state systems architecture designs involve trade-offs between lower cost/operational efficiency and greater flexibility. Using an Enterprise Architecture framework can help enterprise architects navigate the trade-offs and design a system that accomplishes the business goal.
Developing rapidly, RIAs are responsive, intuitive, and above all, plugged in to the vast resources of the Web. As RIAs mature, they will become increasingly viable as superior substitutes to traditional desktop applications.
Cloud computing offers real alternatives to IT departments for improved flexibility and lower cost. Markets are developing for the delivery of software applications, platforms, and infrastructure as a service to IT departments over the "cloud". These services are readily accessible on a pay-per-use basis and offer great alternatives to businesses that need the flexibility to rent infrastructure on a temporary basis or to reduce capital costs. Architects in larger enterprises find that it may still be more cost effective to provide the desired services in-house in the form of "private clouds" to minimize cost and maximize compatibility with internal standards and regulations. If so, there are several options for future-state systems and technical architectures that architects should consider to find the right trade-off between cost and flexibility. Using an architectural framework will help architects evaluate these trade-offs within the context of the business architecture and design a system that accomplishes the business goal. In any case, Oracle's complete, open, and integrated product set offers a compelling value proposition at each level of the design and our certified Oracle Enterprise Architects can help customers discover a cloud roadmap that works for them.
14.2 Future Work
Explain any limitations in your results and how things might be improved. Discuss how your work might be developed further.
[1] Building the Web 2.0 Enterprise - McKinsey and Company - Global Survey Results 2008 https://www.mckinseyquarterly.com/High_Tech/Building_the_Web_20_Enterprise_McKinsey_Global_Survey_2174 - Accessed on 10/02/2010
[1] E. Driver et al. Road Map to an Enterprise Collaboration Strategy. Forrester Research, August 2, 2004.
[2] Finney.S & Corbett.M, ERP Implementation: a compilation and analysis of critical success factors. Business Process Management Journal
[3] Centers for Medicare & Medicaid Services, Selecting a Development Approach Original Issuance: February 17, 2005 Revalidated: March 27, 2008 http://www.cms.gov/SystemLifecycleFramework - Access on 26/01/2010
[4] IEEE 1990. IEEE standard glossary of software engineering terminology. Technical report, IEEE.
[5] D.Alur, J.Crupi and D.Malks Core J2EE Patterns - Best Practices and Design Strategies, First Edition, Prentice Hall / Sun Microsystems Press, 2001
[6] Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design Patterns: Elements of reusable object-oriented software. Boston: Addison-Wesley.


text:
Development of Amazon Web Services CLI Deployment Script
- Status Closed
- Budget $50 - $70 USD
- Total Bids 6
Project Description
I am developing a script which boots up EC2 instances and RDS instances using this tool:
[url removed, login to view]
90% of the script is working. However some features are not currently working or implemented. This is a list of what needs doing:
• Do a check to see if EC2 instances with a certain name are already running - if yes then quit
• If not then start an EC2 instance with a specific name
• Do a check to make sure the EC2 started successfully - if not error and quit
• Do a check to see if there is an RDS snapshot
• Get the name of the most recent timedated one
• Restore this most recent time dated one
• Create an RDS snapshot with a timedated name
• Remove all EC2 instances with a specific name value
I will send you the full code I have on request and give you access to the github repository. I will also be able to test your code live with an online amazon account.
• Experience with Shell
• Experience with Amazon services
• Experience with Python
• Enjoy writing clean, beautiful commented code
• Speak good English
Bonus qualities:
• Have gtalk
• Have a github profileGet free quotes for a project like this
Skills Required
Looking to make some money?
- Set your budget and the timeframe
- Outline your proposal
- Get paid for your work
Hire Freelancers who also bid on this project
Looking for work?
Work on projects like this and make money from home!Sign Up Now
- Forbes
- The New York Times
- Time
- Wall Street Journal
- Times Online


text:
Natural pain relief. Integrated Medical Services. - Advertisement
Thrive Health Systems
Thrive Health Systems
Playtime is important for kids and parents alike, but for some parents being too involved in their children's activities has become the problem.
We all want to save money at the grocery store and on our monthly bills. Here are some ways you can save, depending on your shopping style.
Made-to-order omelets are always a hit because they guarantee you're serving up exactly what everyone can enjoy.
Smith Chiropractic
Aluminum foil is an indispensable kitchen basic that can be used in many ways.
Hosting friends and family at your home is a guaranteed way to make long-lasting memories.
Ask a teenager and he or she might not even know how to read or write cursive. Think of all the historical documents or letters written by ancestors that they would have trouble reading.
One of the president's main duties is to pass bills made up from Congress. According to one kindergarten class, they would do much more than that if they held office.