- Coffman, Elaine
- General
- Large Print
- General
- Palmer, Parker J.
- Bradford, Barbara Taylor
- Picnics
- Humanistic
- ( J )
- Howe, Irving
- Camera Guides
- Baking
- Bhutan
- Rural
- Freedom & Security
- Bambi
- Latin American
- Fine, Anne
- Reference
- Politics
- Paperback
- Feather, Jane
- Ibbotson, Eva
- Grief & Bereavement
- Washington
- Delinsky, Barbara
- Fiction
- Curtis, Christopher Paul
- Social History
- Hardcover
- Some of our other sites:
- Books
- Clothing, Shoes and Accessories
- Baby Clothes and Accessories
- Cosmetics, Beauty Products and Fragrances
- Cellphones, Call Plans and Accessories
- Video Games
- DVDs
- Electronics, Gadgets and Computers
- Health and Personal Care
- Home and Garden
- Home DIY
- Jewelry
- Magazines and Newspapers
- Music Downloads
- Musical Instruments
- Office Equipment and Supplies
- Software and Games
- Sporting Goods
- Toys and Games
- Watches
- UK Books
- UK Video Games
- UK Home and Garden
- UK Electronics, Gadgets and Computers
- UK Baby Clothes and Accessories
- UK Software and Games
- UK Sporting Goods
- UK Toys and Games
Books : Computers & Internet : Web Development : Web Services
-
With over 375,000 new postings and more than 1.7 million hits a day, the e-Bay auction community can be overwhelming. In this new edition of eBay For Dummies, readers will find updated strategies for coming out on top, whether they're posting items, making bids, or arranging payments.
-
"Every developer working with the Web needs to read this book." -- David Heinemeier Hansson, creator of the Rails framework
"RESTful Web Services finally provides a practical roadmap for constructing services that embrace the Web, instead of trying to route around it." -- Adam Trachtenberg, PHP author and EBay Web Services Evangelist
You've built web sites that can be used by humans. But can you also build web sites that are usable by machines? That's where the future lies, and that's what RESTful Web Services shows you how to do. The World Wide Web is the most popular distributed application in history, and Web services and mashups have turned it into a powerful distributed computing platform. But today's web service technologies have lost sight of the simplicity that made the Web successful. They don't work like the Web, and they're missing out on its advantages.
This book puts the "Web" back into web services. It shows how you can connect to the programmable web with the technologies you already use every day. The key is REST, the architectural style that drives the Web. This book:- Emphasizes the power of basic Web technologies -- the HTTP application protocol, the URI naming standard, and the XML markup language
- Introduces the Resource-Oriented Architecture (ROA), a common-sense set of rules for designing RESTful web services
- Shows how a RESTful design is simpler, more versatile, and more scalable than a design based on Remote Procedure Calls (RPC)
- Includes real-world examples of RESTful web services, like Amazon's Simple Storage Service and the Atom Publishing Protocol
- Discusses web service clients for popular programming languages
- Shows how to implement RESTful services in three popular frameworks -- Ruby on Rails, Restlet (for Java), and Django (for Python)
- Focuses on practical issues: how to design and implement RESTful web services and clients
-
This easy-to-use introduction to Microsoft Windows Communication Foundation (WCF) is ideal for developers who want to learn to build services on a company network or as part of an enterprise system. Built into Windows Vista and Longhorn, and available for Windows XP and Windows 2003, WCF provides a platform for service-oriented architecture (SOA) that enables secure and reliable communication among systems within an organization or across the Internet. With WCF, software developers can focus on their business applications and not the plumbing required to connect them. Furthermore, with WCF developers can learn a single programming API to achieve results previously provided by ASMX, Enterprise Services and .NET Remoting. Learning WCF removes the complexity of using this platform by providing detailed answers, explanations and code samples for the most common questions asked by software developers. Windows Communication Foundation (or WCF, formerly code name "Indigo") provides a set of programming APIs that make it easy to build and consume secure, reliable, and transacted services. This platform removes the need for developers to learn different technologies such as ASMX, Enterprise Services and .NET Remoting, to distribute system functionality on a corporate network or over the Internet. The first truly service-oriented platform, WCF provides innovations that decouple service design and development from deployment and distribution - creating a more flexible and agile environment. WCF also encapsulates all of the latest web service standards for addressing, security, reliability and more.
-
Web 2.0 makes headlines, but how does it make money? This concise guide explains what's different about Web 2.0 and how those differences can improve your company's bottom line. Whether you're an executive plotting the next move, a small business owner looking to expand, or an entrepreneur planning a startup, Web 2.0: A Strategy Guide illustrates through real-life examples how businesses, large and small, are creating new opportunities on today's Web. This book is about strategy. Rather than focus on the technology, the examples concentrate on its effect. You will learn that creating a Web 2.0 business, or integrating Web 2.0 strategies with your existing business, means creating places online where people like to come together to share what they think, see, and do. When people come together over the Web, the result can be much more than the sum of the parts. The customers themselves help build the site, as old-fashioned "word of mouth" becomes hypergrowth. Web 2.0: A Strategy Guide demonstrates the power of this new paradigm by examining how: Flickr, a classic user-driven business, created value for itself by helping users create their own value Google made money with a model based on free search, and changed the rules for doing business on the Web-opening opportunities you can take advantage of Social network effects can support a business-ever wonder how FaceBook grew so quickly? Businesses like Amazon tap into the Web as a source of indirect revenue, using creative new approaches to monetize the investments they've made in the Web Written by Amy Shuen, an authority on Silicon Valley business models and innovation economics, Web 2.0: A Strategy Guide explains how to transform yourbusiness by looking at specific practices for integrating Web 2.0 with what you do. If you're executing business strategy and want to know how the Web is changing business, this book is for you.
-
This is the eBook version of the printed book.
The Definitive Guide to Service Engineering
The key to succeeding with service-oriented architecture (SOA) is in comprehending the meaning and significance of its most fundamental building block: the service. It is through an understanding of service design that truly "service-oriented" solution logic can be created in support of achieving the strategic goals associated with SOA and service-oriented computing. Bestselling SOA author Thomas Erl guides you through a comprehensive, insightful, and visually rich exploration of the service-orientation design paradigm, revealing exactly how services should and should not be designed for real-world SOA.This book-s in-depth coverage includes
- Over 240 full-color illustrations.
- A concise introduction to SOA and service-oriented computing concepts and benefits.
- A thorough exploration of the service-orientation design paradigm as represented by eight specific design principles.
- A comparison of service-oriented and object-oriented concepts and principles and a clear definition of what qualifies as -service-oriented- logic.
- Detailed coverage of four different forms of service-related design granularity.
- An exhaustive examination of service contracts, with an emphasis on standardization, abstraction, and the utilization of WS-Policy, XML Schema, and WSDL definitions.
- A comprehensive study of positive and negative service-related coupling types with an emphasis on the requirements to attaining a suitable level of loose coupling.
- An inside look into how commercial design approaches are incorporated to achieve truly agnostic and reusable service logic.
- Techniques for maximizing service reliability, scalability, and performance by instilling high levels of autonomy and emphasizing stateless design.
- Approaches for positioning services as highly discoverable and interpretable enterprise resources.
- Unprecedented coverage of how to design services for participation in complex compositions.
- The definition of concrete links between each design principle and the strategic goals and benefits of SOA and service-oriented computing.
- Numerous cross-references to key design patterns documented separately in SOA: Design Patterns.
www.prenhallprofessional.com
www.soabooks.com
www.soasystems.com
-
Written by Microsoft software legend Juval Lowy, "Programming WCF Services" is the authoritative introduction to Microsoft's new, and some say revolutionary, unified platform for developing service-oriented applications (SOA) on Windows. Relentlessly practical, the book delivers insight, not documentation, to teach developers what they need to know to build the next generation of SOAs.
After explaining the advantages of service-orientation for application design and teaching the basics of how to develop SOAs using WCF, the book shows how you can take advantage of built-in features such as service hosting, instance management, asynchronous calls, synchronization, reliability, transaction management, disconnected queued calls and security to build best in class applications. "Programming WCF Services" focuses on the rationale behind particular design decisions, often shedding light on poorly-documented and little-understood aspects of SOA development. Developers and architects will learn not only the "how" of WCF programming, but also relevant design guidelines, best practices, and pitfalls. Original techniques and utilities provided by the author throughout the book go well beyond anything that can be found in conventional sources.
Based on experience and insight gained while taking part in the strategic design of WCF and working with the team that implemented it, "Programming WCF Services" provides experienced working professionals with the definitive work on WCF. Not only will this book make you a WCF expert, it will make you a better software engineer. It's the Rosetta Stone of WCF.
-
The Ultimate Guide for Designing and Governing Web Service Contracts
For Web services to succeed as part of SOA, they require balanced, effective technical contracts that enable services to be evolved and repeatedly reused for years to come. Now, a team of industry experts presents the first end-to-end guide to designing and governing Web service contracts. Writing for developers, architects, governance specialists, and other IT professionals, the authors cover the following areas:
Understanding Web Service Contract Technologies
Initial chapters and ongoing supplementary content help even the most inexperienced professional get up to speed on how all of the different technologies and design considerations relate to the creation of Web service contracts. For example, a visual anatomy of a Web service contract documented from logical and physical perspectives is provided, along with a chapter dedicated to describing namespaces in plain English. The book is further equipped with numerous case study examples and many illustrations.
Fundamental and Advanced WSDL
Tutorial coverage of WSDL 1.1 and 2.0 and detailed descriptions of their differences is followed by numerous advanced WSDL topics and design techniques, including extreme loose coupling, modularization options, use of extensibility elements, asynchrony, message dispatch, service instance identification, non-SOAP HTTP binding, and WS-BPEL extensions. Also explained is how WSDL definitions are shaped by key SOA design patterns.
Fundamental and Advanced XML Schema
XML Schema basics are covered within the context of Web services and SOA, after which advanced XML Schema chapters delve into a variety of specialized message design considerations and techniques, including the use of wildcards, reusability of schemas and schema fragments, type inheritance and composition, CRUD-style message design, and combining industry and custom schemas.
Fundamental and Advanced WS-Policy
Topics, such as Policy Expression Structure, Composite Policies, Operator Composition Rules, and Policy Attachment establish a foundation upon which more advanced topics, such as policy reusability and centralization, nested, parameterized, and ignorable assertions are covered, along with an exploration of creating concurrent policy-enabled contracts and designing custom policy assertions and vocabularies.
Fundamental Message Design with SOAP
A broad range of message design-related topics are covered, including SOAP message structures, SOAP nodes and roles, SOAP faults, designing custom SOAP headers and working with industry-standard SOAP headers.Advanced Message Design with WS-Addressing
The art of message design is taken to a new level with in-depth descriptions of WS-Addressing endpoint references (EPRs) and MAP headers and an exploration of how they are applied via SOA design patterns. Also covered are WSDL binding considerations, related MEP rules, WS-Addressing policy assertions, and detailed coverage of how WS-Addressing relates to SOAP Action values.
Advanced Message Design with MTOM, and SwA
Developing SOAP messages capable of transporting large documents or binary content is explored with a documentation of the MTOM packaging and serialization framework (including MTOM-related policy assertions), together with the SOAP with Attachments (SwA) standard and the related WS-I Attachments Profile.
Versioning Techniques and Strategies
Fundamental versioning theory starts off a series of chapters that dive into a variety of versioning techniques based on proven SOA design patterns including backward and forward compatibility, version identification strategies, service termination, policy versioning, validation by projection, concurrency control, partial understanding, and versioning with and without wildcards.
Web Service Contracts and SOA
The constant focus of this book is on the design and versioning of Web service contracts in support of SOA and service-orientation. Relevant SOA design principles and design patterns are periodically discussed to demonstrate how specific Web service technologies can be applied and further optimized. Furthermore, several of the advanced chapters provide expert techniques for designing Web service contracts while taking SOA governance considerations into account.
About the Web Sites
www.soabooks.com supplements this book with a variety of resources, including a diagram symbol legend, glossary, supplementary articles, and source code available for download.
www.soaspecs.com provides further support by establishing a descriptive portal to XML and Web services specifications referenced in all of Erl’s Service-Oriented Architecture books.
Foreword
Preface
Chapter 1: Introduction
Chapter 2: Case Study Background
Part I: Fundamental Service Contract Design
Chapter 3: SOA Fundamentals and Web Service Contracts
Chapter 4: Anatomy of a Web Service Contract
Chapter 5: A Plain English Guide to Namespaces
Chapter 6: Fundamental XML Schema: Types and Message Structure Basics
Chapter 7: Fundamental WSDL Part I: Abstract Description Design
Chapter 8: Fundamental WSDL Part II: Concrete Description Design
Chapter 9: Fundamental WSDL 2.0: New Features, and Design Options
Chapter 10: Fundamental WS-Policy: Expression, Assertion, and Attachment
Chapter 11: Fundamental Message Design: SOAP Envelope Structure, and Header Block Processing
Part II: Advanced Service Contract Design
Chapter 12: Advanced XML Schema Part I: Message Flexibility, and Type Inheritance and Composition
Chapter 13: Advanced XML Schema Part II: Reusability, Derived Types, and Relational Design
Chapter 14: Advanced WSDL Part I: Modularization, Extensibility, MEPs, and Asynchrony
Chapter 15: Advanced WSDL Part II: Message Dispatch, Service Instance Identification, and Non-SOAP HTTP Binding
Chapter 16: Advanced WS-Policy Part I: Policy Centralization and Nested, Parameterized, and Ignorable Assertions
Chapter 17: Advanced WS-Policy Part II: Custom Policy Assertion Design, Runtime Representation, and Compatibility
Chapter 18: Advanced Message Design Part I: WS-Addressing Vocabularies
Chapter 19: Advanced Message Design Part II: WS-Addressing Rules and Design Techniques
Part III: Service Contract Versioning
Chapter 20: Versioning Fundamentals
Chapter 21: Versioning WSDL Definitions
Chapter 22: Versioning Message Schemas
Chapter 23: Advanced Versioning
Part IV: Appendices
Appendix A: Case Study Conclusion
Appendix B: A Comparison of Web Services and REST Services
Appendix C: How Technology Standards are Developed
Appendix D: Alphabetical Pseudo Schema Reference
Appendix E: SOA Design Patterns Related to This Book
-
Written in a clear, non-technical, style by a leading expert in SEO (search engine optimization), GTTTOG explains techniques and strategies proven to return higher search engine rankings and sales. It addresses all aspects of search engine marketing and includes an assessment of the impact of Web 2.0 on Internet search strategies.
-
-
-
Is Ajax a new technology, or the same old stuff web developers have been using for years? Both, actually. This book demonstrates not only how tried-and-true web standards make Ajax possible, but how these older technologies allow you to give sites a decidedly modern Web 2.0 feel. Ajax: The Definitive Guide explains how to use standards like JavaScript, XML, CSS, and XHTML, along with the XMLHttpRequest object, to build browser-based web applications that function like desktop programs. You get a complete background on what goes into today's web sites and applications, and learn to leverage these tools along with Ajax for advanced browser searching, web services, mashups, and more. You discover how to turn a web browser and web site into a true application, and why developing with Ajax is faster, easier and cheaper. The book also explains: How to connect server-side backend components to user interfaces in the browser Loading and manipulating XML documents, and how to replace XML with JSON Manipulating the Document Object Model (DOM) Designing Ajax interfaces for usability, functionality, visualization, and accessibility Site navigation layout, including issues with Ajax and the browser's back button Adding life to tables & lists, navigation boxes and windows Animation creation, interactive forms, and data validation Search, web services and mash-ups Applying Ajax to business communications, and creating Internet games without plug-ins The advantages of modular coding, ways to optimize Ajax applications, and more This book also provides references to XML and XSLT, popular JavaScript Frameworks, Libraries, and Toolkits, and various Web Service APIs. By offering web developers a muchbroader set of tools and options, Ajax gives developers a new way to create content on the Web, while throwing off the constraints of the past. Ajax: The Definitive Guide describes the contents of this unique toolbox in exhaustive detail, and explains how to get the most out of it.
-
"Genius! Gerry McGovern gets it! If you read one book on managing a website, this is it. A must read for any web manager in any organization, large or small, government or private."-Bev Godwin, director of FirstGov.gov
Written by an internationally acclaimed specialist in this field, Killer Web Content provides the strategies and practical techniques you need to get the very best out of your web content. The book helps readers to: provide visitors to their website with the right content at the right time, write compelling web content that users respond to and want more of, make sure their website has the best possible chance of getting into the first page of search results, and understand the benefits of blogs, RSS, and e-mail newsletters.
Gerry McGovern (www.gerrymcgovern.com) is managing partner at a consultancy that focuses on maximizing value from web content.
-
This is a comprehensive tutorial that teaches fundamental and advanced SOA design principles, supplemented with detailed case studies and technologies used to implement SOAs in the real world. ***We'll have cover endorsements from Tom Glover, who leads IBM's Web Services Standards initiatives; Dave Keogh, Program Manager for Visual Studio Enterprise Tools at Microsoft, and Sameer Tyagi, Senior Staff Engineer, Sun Microsystems. All major software manufacturers and vendors are promoting support for SOA. As a result, every major development platform now officially supports the creation of service-oriented solutions. Parts I, II, and III cover basic and advanced SOA concepts and theory that prepare you for Parts IV and V, which provide a series of step-by-step "how to" instructions for building an SOA. Part V further contains coverage of WS-* technologies and SOA platform support provided by J2EE and .NET.
-
If you're a web developer, you know that you can use Ajax to add rich, user-friendly, dynamic features to your applications. With the Google Web Toolkit (GWT), a new Ajax tool from Google that automatically converts Java to JavaScript, you can build Ajax applications using the Java language.
GWT in Practice is an example-driven, code-rich book designed for web developers already familiar with the basics of GWT who now want hands-on experience. After a quick review of GWT fundamentals, GWT in Practice presents scores of handy, reusable solutions to the problems you face when you need to move beyond "Hello World" and "proof of concept" applications. This book skips the theory and looks at the way things really work when you're building. I also shows you where GWT fits into the Enterprise Java Developer's toolset. Written by expert authors Robert Cooper and Charlie Collins, this book combines sharp insight with hard-won experience. Readers will find thorough coverage of all aspects of GWT development from the basic GWT concepts to in depth real world example applications.
The first part of the book is a rapid introduction to the GWT methodology The second part of the book then delves into several practical examples which further demonstrate core aspects of the toolkit The book concludes by presenting several larger GWT applications including drag and drop support for UI elements, data binding, processing streaming data, handling application state, automated builds, and continuous integration.
Along the way GWT in Practice covers many additional facets of working with the toolkit. Various development tools are used throughout the book, including Eclipse, NetBeans, IDEA, Ant, Maven, and, of course, the old fashioned command line. The book also addresses integrating GWT with existing applications and services along with enterprise and team development.
-
Active Directory, a fundamental component of Windows 2000, is revolutionizing the way people design and manage networks. Whether you are a savvy system administrator or are new to networking and information technology, Active Directory For Dummies helps you understand this wonderful new operating system technology.
This unpretentious resource presents the fundamentals of Active Directory and then moves right into planning, implementing, and managing it. Active Directory For Dummies offers a clear explanation of the program and a cataloging of its benefits and buzzwords. Explore the following topics in easy-to-understand language:
* Prepare your environment for a shift to Active Directory.
* Consider logical structure issues like planning the DNS namespace, designing the tree, and defining an organizational unit (OU) model.
* Build a model of an Active Directory domain and create your first objects.
* Migrate from an existing environment to an Active Directory environment.
* Manage security, users, resources, and replication traffic within the Active Directory tree.
* Understand how the Active Directory Services Interface works with other Microsoft technology.
Active Directory For Dummies also includes cool Web links for information on the program as well as a special section on troubleshooting common problems that may arise during installation and operation of Active Directory. The enclosed CD-ROM offers you 60-day test-drive versions of Visio Professional and Visio Enterprise as well as trial versions of Entevo DirectMigrate2000, EtherPeek 4.0, EtherHelp, TokenPeek, and TokenHelp. -
Ajax has revolutionized the way users interact with web pages today. Gone are frustrating page refreshes, lost scroll positions and intermittent interaction with a web site. Instead, we have a new generation of fast, rich, and more intuitive web applications. The ASP.NET AJAX framework puts the power of Ajax into the hands of web developers. ASP.NET AJAX, formerly called Atlas, is a new free framework from Microsoft designed to easily add Ajax features to ASP.NET applications. With this technology, ASP.NET developers can easily build more interactive and highly-personalized web applications that work across all most popular browsers.
ASP.NET AJAX in Action is a fast-paced, example-rich tutorial designed for ASP.NET web developers and written by ASP.NET AJAX experts Alessandro "Garbin" Gallo, David Barkol, and Rama Krishna Vavilala. This book introduces you to Ajax applications and to the ASP.NET AJAX technology. Beginners will appreciate the clear explanations of key ideas and terminology. Intermediate and advanced ASP.NET developers will find a no-nonsense learning source and well-organized reference.
ASP.NET AJAX in Action offers a rich set of examples and meticulous explanations. The extensive code samples are accompanied by accurate and rigorous explanations of the concepts behind development with ASP.NET AJAX. In this book, you will discover how to use
- Microsoft Ajax Library
- Partial rendering with UpdatePanels
- Advanced client and server techniques
- Ajax Control Toolkit
If you are a web developer looking to bring your web pages to life and to enhance the user experience, this book is for you.
ASP.NET AJAX in Action will give you with the knowledge and tools you need to more easily craft the next generation of Ajax applications. With the help of the Microsoft ASP.NET AJAX framework, Ajax development has never been easier and more instinctive for both client-script developers and ASP.NET developers alike.
-
Site statistics give you raw numbers, but Web analytics crunch those numbers into meaningful metrics you can actually use. Here’s what's new in Google Analytics 2.0, such as cross-segment reporting and drilldown content that enhance analysis. Learn to set up Analytics and choose filters, explore goals and goal-setting, use customizable dashboards and date ranges, and master basic analytics and Web statistics concepts. Examine every aspect of available reports, learn to use those best suited for e-commerce sites, and more.
BONUS: Each copy of Google Analytics 2.0 includes a $25 Google AdWords gift card compliments of Google. With this $25 gift card , you can attract new customers to your website on Google's dime.
-
-
Product Description
Building on the success of its storefront and fulfillment services, Amazon now allows businesses to "rent" computing power, data storage and bandwidth on its vast network platform. This book demonstrates how developers working with small- to mid-sized companies can take advantage of Amazon Web Services (AWS) such as the Simple Storage Service (S3), Elastic Compute Cloud (EC2), Simple Queue Service (SQS), Flexible Payments Service (FPS), and SimpleDB to build web-scale business applications. With AWS, Amazon offers a new paradigm for IT infrastructure: use what you need, as you need it, and pay as you go. Programming Web Services explains how you can access Amazon's open APIs to store and run applications, rather than spend precious time and resources building your own. With this book, you'll learn all the technical details you need to: Store and retrieve any amount of data using application servers, unlimited data storage, and bandwidth with the Amazon S3 service Buy computing time using Amazon EC2's interface to requisition machines, load them with an application environment, manage access permissions, and run your image using as many or few systems as needed Use Amazon's web-scale messaging infrastructure to store messages as they travel between computers with Amazon SQS Leverage the Amazon FPS service to structure payment instructions and allow the movement of money between any two entities, humans or computers Create and store multiple data sets, query your data easily, and return the results using Amazon SimpleDB. Scale up or down at a moment's notice, using these services to employ as much time and space as you need Whether you're starting a new online business, need to ramp upexisting services, or require an offsite backup for your home, Programming Web Services gives you the background and the practical knowledge you need to start using AWS. Other books explain how to build web services. This book teaches businesses how to take make use of existing services from an established technology leader.
Create HTML POST Forms That Allow Your Web Site Visitors to Upload Files Into Your S3 Account Using a Standard Web Browser
By James Murty, creator of the JetS3t Java S3 library and author of Programming Amazon Web Services
Amazon’s Simple Storage Service (S3) provides cheap and unlimited online data storage for anyone with a credit card and an Amazon Web Service (AWS) account. If you have an AWS account, you can interact with the S3 service using specialized tools to upload and manage your files. It is very convenient to have access to this online storage resource for yourself, but there may be situations where you would like to allow others to upload files into your account.
For this purpose, S3 accepts uploads via specially-crafted and pre-authorized HTML POST forms. You can include these forms in any web page to allow your web site visitors to send you files using nothing more than a standard web browser.
In this article, I will demonstrate how to build simple S3 POST forms. I will assume that you have already signed up for the S3 service, and that you have an S3 client program for creating buckets and viewing files in your account. Before you proceed, create your own bucket to store uploaded files — in the examples below I will use a bucket named s3-bucket.
POST Form Web Page
Here is a web page with an S3 POST Form that you can use as a template for your own forms:
S3 POST Form This template demonstrates some important features of an S3 POST form, and the web page that contains it:
- The web page that contains the form has a
metatag in the head section that tells web browsers to use theUTF-8unicode character encoding. - The form’s
actionparameter specifies an S3 URL that includes the name of your destination bucket, in this case the bucket called s3-bucket. - The form contains a number of input fields with parameter names and values that will be sent to the S3 service. If any required input fields are missing, or if a field has an incorrect value, the service will not accept uploads from the form.
The S3 service uses information from the form’s input fields to authorize uploads, and to set the properties of uploaded file objects. Here is a description of the most common input fields:
Field Name Description key A name for the S3 object that will store the uploaded file’s data. This name can be set in advance when you know what information the user will upload, for example: uploads/monthly_report.txt. If you do not know the name of the file a user will upload, the key value can include the special variable
${filename}which will be replaced with the name of the uploaded file. For example, the key value uploads/${filename} will become the object name uploads/Birthday Cake.jpg if the user uploads a file called Birthday Cake.jpg.AWSAccessKeyId The Access Key Identifier credential for your Amazon Web Service account. acl The access control policy to apply to the uploaded file. If you do not want the uploaded file to be made available to the general public, you should use the value private. To make the uploaded file publicly available, use the valuepublic-read.success_action_redirect The URL address to which the user’s web browser will be redirected after the file is uploaded. This URL should point to a “Successful Upload” page on your web site, so you can inform your users that their files have been accepted. S3 will add bucket,keyandetagparameters to this URL value to inform your web application of the location and hash value of the uploaded file.policy A Base64-encoded policy document that applies rules to file uploads sent by the S3 POST form. This document is used to authorize the form, and to impose conditions on the files that can be uploaded. Policy documents will be described in more detail below. signature A signature value that authorizes the form and proves that only you could have created it. This value is calculated by signing the Base64-encoded policy document with your AWS Secret Key, a process that I will demonstrate below. Content-Type The content type (mime type) that will be applied to the uploaded file, for example image/jpegfor JPEG picture files. If you do not know what type of file a user will upload, you can either prompt the user to provide the appropriate content type, or write browser scripting code that will automatically set this value based on the file’s name.If you do not set the content type with this field, S3 will use the default value
application/octet-streamwhich may prevent some web browsers from being able to display the file properly.file The input field that allows a user to select a file to upload. This field must be the last one in the form, as any fields below it are ignored by S3. This overview of the form’s input fields should help you to modify the template POST form to suit your own purposes. At a minimum, you will need to edit the form’s
actionparameter to point to your own S3 bucket, and set the value of theAWSAccessKeyIdfield to your AWS Access Key credential.To complete the form and make it acceptable to the S3 service, you will also need to generate a policy document and signature value.
Policy Document
S3 POST forms include a policy document that authorizes the form and imposes limits on the files that can be uploaded. When S3 receives a file via a POST form, it will check the policy document and signature to confirm that the form was created by someone who is allowed to store files in the target S3 account.
A policy document is a collection of properties expressed in JavaScript Object Notation, which simply means that the document’s structure and content must conform to a certain format. Every policy document contains two top-level items:
expiration- A Greenwich Mean Time (GMT) timestamp that specifies when the policy document will expire. Once a policy document has expired, the upload form will no longer work.conditions- A set of rules to define the values that may be included in the form’s input fields, and to impose size limits for file uploads.
Here is a policy document corresponding to the POST form template above. This policy has an
expirationdate of January 1st 2009:{"expiration": "2009-01-01T00:00:00Z", "conditions": [ {"bucket": "s3-bucket"}, ["starts-with", "$key", "uploads/"], {"acl": "private"}, {"success_action_redirect": "http://localhost/"}, ["starts-with", "$Content-Type", ""], ["content-length-range", 0, 1048576] ] }To create a valid S3 POST form, you must include a policy document whose
conditionssection contains a rule for almost every input field in the form. At a minimum, this document must include rules for thebucketandkeyvalues of the uploaded file object. In addition to these two rules, you will need to include a rule for every other input field in the form except forAWSAccessKeyId,signature,policyandfile.Because our template POST form includes the input fields
acl,success_action_redirect, andContent-Type, our policy document includes rules corresponding to these fields. Our policy document also includes an extracontent-length-rangerule that limits the size of files that can be uploaded.There are three kinds of rules you can apply in your policy document:
- Equality rule, which checks that an input field’s value is set to a given string. An equality rule is expressed as a name and value pair within brace characters, for example:
{"acl": "private"} - Starts-With rule, which checks that an input field’s value begins with a given string. If the given string is empty, S3 will check only that the field is present in the form and will not care what value it contains. A starts-with rule is expressed as a three-element array that contains the term
starts-with, followed by the name of the input field preceded by a$symbol, then the prefix string value for comparison.
In the policy document above, we use starts-with rules for thekeyandContent-Typefields because we do not know in advance the name of the file a user will upload, or what type of file it will be. The rule for theContent-Typefield uses an empty string for comparison, which means it will permit any content type value. The rule for the object’skeyname uses the prefix string “upload/”, which means that the key value must always start with the upload/ subdirectory path. - Content length rule, which checks that the size of an uploaded file is between a given minimum and maximum value. If this rule is not included in a policy document, users will be able to upload files of any size up to the 5GB limit imposed by S3.
A content length rule is expressed as a three-element array that contains the termcontent-length-range, followed by integer values to set the minimum and maximum file size. The policy document above includes a content length rule that will prevent the form from uploading files larger than 1MB in size (1,048,576 bytes).
It is important to make sure that your policy document corresponds exactly to your S3 POST form. If there are any discrepancies between the input field values in your form and the rule values in your policy document, or if your form contains input fields that do not have corresponding rules in your policy, the S3 service will reject the form and return an incomprehensible XML error message to your users.
Sign Your S3 POST Form
To complete your S3 POST form, you must sign it to prove to S3 that you actually created the form. If you do not sign the form properly, or if someone else tries to modify your form after it has been signed, the service will be unable to authorize it and will reject the upload.
To sign your form you need to perform two steps:
- Base64-encode the policy document, and include it in the form’s
policyinput field. - Calculate a signature value (SHA-1 HMAC) from the encoded policy document using your AWS Secret Key credential as a password. Include this value in the form’s
signatureinput field after Base64-encoding it.
Almost all programming languages include libraries for performing these two steps. Here are some example code fragments to do the job with different languages, assuming you have already defined the variables
policy_documentandaws_secret_key.Ruby
require 'base64' require 'openssl' require 'digest/sha1' policy = Base64.encode64(policy_document).gsub("\n","") signature = Base64.encode64( OpenSSL::HMAC.digest( OpenSSL::Digest::Digest.new('sha1'), aws_secret_key, policy) ).gsub("\n","")Java
import sun.misc.BASE64Encoder; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; String policy = (new BASE64Encoder()).encode( policy_document.getBytes("UTF-8")).replaceAll("\n",""); Mac hmac = Mac.getInstance("HmacSHA1"); hmac.init(new SecretKeySpec( aws_secret_key.getBytes("UTF-8"), "HmacSHA1")); String signature = (new BASE64Encoder()).encode( hmac.doFinal(policy.getBytes("UTF-8"))) .replaceAll("\n", "");Python
import base64 import hmac, sha policy = base64.b64encode(policy_document) signature = base64.b64encode( hmac.new(aws_secret_key, policy, sha).digest())Once you have calculated the values for the
policyandsignatureinput fields and included these values in your form, the form should be complete. Save the web page and form document as an.htmlfile, open it in your favorite web browser, and test it by uploading some files to your S3 bucket.Conclusion
The form web page and policy document templates in this article should give you a starting point for creating your own upload forms. With some minor modifications to the template documents and a little coding, you will be able to create authorized forms that make it easy for your web site visitors to upload files to your S3 account.
The S3 service’s POST support is a powerful feature with many potential uses. You could create a single upload form to allow your friends and colleagues to send you files that are too large for email, or you could modify your web applications to generate forms on-demand so your users can store their data in S3 rather than on your own server. Just remember that you will be liable for any S3 data transfer and storage fees incurred by the people who use your forms.
- The web page that contains the form has a
-
Most modern business systems include independent applications that exchange information with each other-a technique usually called enterprise integration. An architectural approach called the Enterprise Service Bus (ESB) offers developers a way to handle the messages between those independent applications without creating a lot of custom code. While commercial ESB solutions can be quite expensive to implement and maintain, a set of high-quality open source ESB tools offer the same functionality at a substantially lower cost.
Open Source ESBs in Action shows you how to implement and use two open source ESB implementations: Mule and ServiceMix. The authors introduce you to these freely-available ESB tools and present practical examples of how to use them in real-world scenarios. You will learn how the various features of an ESB such as transformation, routing, security, connectivity and more can be implemented using Mule and ServiceMix. You will also learn how to solve common enterprise integration problems using a structured approach.
Beyond simply learning how Mule and Service Mix work, you'll learn the core techniques of ESB implementation such as Process Choreography, or the implementation of complex business processes through an ESB, and Service Orchestration, or exposing a set of services as a single service. The book shows you the fundamentals of ESB-based event processing and Quality of Service concerns like security, reliable delivery, and transaction management.
Working in integration projects is exciting, with new technologies and paradigms arriving every day. Open Source technologies like Mule and ServiceMix both offer lower-cost solutions and a higher degree of innovation than commercial ESB implementations. Open Source ESBs in Action will help you master ESB-driven integration techniques quickly and will provide you with knowledge you need to work effectively with Mule and ServiceMix.





















